Ask Slashdot: Feature Requests For Epoch Init System 1.3.0?
New submitter Ben Dibell writes: My name is Subsentient. I maintain the Epoch Init System, a single-threaded init system for Linux designed to be easy to configure and customize, as well as staying out of your way.
Epoch uses a numeric priority system to determine the boot order of objects, supports a wide range of customizability, and doesn't require much anything except libc and /bin/sh (though /bin/sh can be omitted, not recommended). Epoch also features advanced service status reporting features and has service supervision.
I'm just here to ask the Slashdot community what they'd like to see in the next release, 1.3.0 "Fluoxetine", before I wrap it up.
There are generally 2 things I can't consider:
* Parallel service startup, because that can be done manually, and implementing it would make Epoch too complex IMHO.
* Switching away from the numeric priority system to "true" dependencies. I implemented the priority system because I liked the freedom it gives the end user.
Despite these omissions, your feedback matters to me. I want to make something everyone will want to use.
-Subsentient
Epoch uses a numeric priority system to determine the boot order of objects, supports a wide range of customizability, and doesn't require much anything except libc and /bin/sh (though /bin/sh can be omitted, not recommended). Epoch also features advanced service status reporting features and has service supervision.
I'm just here to ask the Slashdot community what they'd like to see in the next release, 1.3.0 "Fluoxetine", before I wrap it up.
There are generally 2 things I can't consider:
* Parallel service startup, because that can be done manually, and implementing it would make Epoch too complex IMHO.
* Switching away from the numeric priority system to "true" dependencies. I implemented the priority system because I liked the freedom it gives the end user.
Despite these omissions, your feedback matters to me. I want to make something everyone will want to use.
-Subsentient
You need to support the standard service file format to be relevant.
Sounds like the method Solaris used.
Only the State obtains its revenue by coercion. - Murray Rothbard
I think I'll just add a web browser.
... shouldn't be too difficult? Well, as long as you stay away from dependencies, and just limit concurrency to services with the same priority... What is it you worry about?
It's always nice to have alternatives. How fast or slow is it for a typical desktop?
I did find an interesting write up of experimenting with epoch as an init/systemd replacement.
Why do you think a numeric priority system gives "freedom" to the end user? To me, having to manually mess around with numbers is an annoyance, and it means that the init system is getting in the way.
Having numbers means that some dependency info gets lost. If you have an S10 and S20 script, is there any dependency between them, or were they just arbitrarily numbered? It's impossible to tell unless you go and read through the script and figure out for yourself. This makes it hard to debug when things go wrong. You also just end up with a bunch of scripts that all start with S99 or K99.
The NetBSD init system (which was introduced way back in 2001, and I think ended up being adopted by the other BSDs) has a simple way of solving this. There's a tool called rcorder that parses REQUIRE and PROVIDE lines in each startup script (it's tsort, essentially) and determines the order to run each script. If you wanted to debug something, you could run this yourself and check the output. "Runlevels" were implemented with dummy scripts (i.e. scripts that just had dependency information in them, and didn't perform any actions).
Other than that, it's as simple as the traditional sysvinit, but without meaningless numbers everywhere. You can read more about it here: http://www.mewburn.net/luke/pa...
It's 2015, we should be naming things not numbering them.
Make it compatible and portable to Devuan, Slackware, BSD and other non-commercialised *nixes.
Make sure it's it's not compatible with any current technology or formats. :)
Maybe you can write it all in Java. We all love Java running on our servers. Maybe with a non-intuitive touch screen console with no real functionality. You'll make a fortune.
Serious? Seriousness is well above my pay grade.
Don't forget an email client
Have gnu, will travel.
I'm perfectly happy with OpenRC over here (I'm a Gentoo user, mostly). It has parallel startup, a fairly straightforward configuration, it's possible to run multiple instances of a daemon, and it works with Linux and BSD systems.
And most importantly, I can still run my own cron, syslog, and date systems.
How is Epoch different?
What problem is this solving, and how is Epoch uniquely solving those problems?
Wonder what the public key field is for?
I suggest you ask again on soylent news; there's quite an active technical community thers.
Also on the devuan mailing list. They might end up being your users.
-- hendrik
And how about a bluetooth interface to a watch app, so I can monitor the services on my wrist... all the trendy gadgets are getting that nowdays
If I had a DeLorean... I would probably only drive it from time to time.
1) Cgroups-based daemon handling. 2) No XML config files, for god's sake! 3) No nested dirs/subdirs in /etc, please... keep config in one single file
message, and stderr like systemd? If it doesn't, then it is superior. The systemd guys just don't understand why those things are important.
What holds up a port to the kernel of FreeBSD?
I manage about two dozen sysadmins with around 80k virtual machines, and swallowing stderr is the biggest problem we now face. systemd doesn't log it or show it on the console. Most daemons give pretty good error messages, but systemd hides that from them. That means rather than taking a few minutes to troubleshoot a problem, they now waste hours because the systemd guys just don't understand stderr. If this init system doesn't hide stderr, then I'm very interested in it.
1. Increment your version.h
2. Ship it. It's excellent. It's minimal. I love it.
*Hugs*
Why was this marked a troll? These are very serious design flaws with systemd. Of course rather than fixing the problems, Poettering instead has his minions make personal attacks. I think it would take less effort to just fix the problems rather than constantly attacking those that point them out.
Fast, graphical startup that give the user all choices and full compatibility with existing software (except for systemd, you can drop that POS like a hot potato and no one will care-- in fact people will thank you and send you beer). And that's it.
Rather than addressing the serious issues with systemd, they simply just bury this as a troll. systemd most certainly has trouble with returning a correct exit status. I use Jenkins for continuous deployment, and it uses, like all good UNIX programs should, the exit status. systemd returns zero even when starting a daemon fails. That is a serious bug.
Also, systemd swallows stderr. Most of the start-up problems I deal with run start-up scripts that have useful output to stderr. systemd's policy of not logging that to the console or the journal makes my life much more difficult. For example, if MongoDB doesn't shutdown gracefully, it leaves a file named /var/lib/'mongodb/mongod.lock. MongoDB outputs a clear and unambiguous error message to stderr. systemd hides that message. systemd makes it very hard to determine that is the problem.
Why was someone that points out a bug in systemd attacked this way. It's sad to see, as Linus pointed out, people that point out bugs in systemd are attacked. Wouldn't it just take less effort to fix the bugs? I know systemd has made my life a living hell trying to manage a few hundred Red Hat systems.
Coreboot "is an extended firmware platform that delivers a lightning fast and secure boot experience on modern computers and embedded systems.</marketing>
coreboot (formerly known as LinuxBIOS) is a free software project, aimed at replacing the proprietary BIOS firmware found in most computers with a lightweight system designed to perform only the minimum number of tasks necessary to load and run a modern 32-bit or 64-bit operating system. - https://en.wikipedia.org/wiki/Coreboot
Well, you'll be one up on systemd then, it only has a web server.
Watch this Heartland Institute video
That is what systemd does...
"The Epoch Init System is a small but powerful init system for Linux 2.6+."
debian will not use it as default.
Adding this support should be quite easy. Just use similar approach as Puppet or those package dependency systems. Use a DAG (directed acyclic graph). There are ready solutions for manipulating a DAG, including NetworkX. And the DAG specific solution should be quite simple, around 15-20 lines of code (been there, done that). With a DAG you can utilize full CPU potential while still being maintain the correct execution order.
No it is not. It's not the service itself that starts required services, it is systemd that does it.
GigaplexNZ was suggesting that every service start out by starting all the dependencies it requires.
Watch this Heartland Institute video
And a webserver. What good will a web browser be without a webserver. You might have to wait seconds before the network is up.
So you are assimilating lynx then?
Init systems seem to model themselves on Makefiles, reading everything at startup and detecting dependencies on the fly then deriving ordering and parallelism. This should all be invariant stuff, instead model things on ninja, where you calculate a giant wad of info and mechanically grind through it at startup.
https://martine.github.io/ninj...
/etc only for the win
The real tick is to manage things in a sane way when the system isn't working properly. Take the case of a system living in a rack far away. When it boots it needs to 1) bring up part of the network, 2) bring up sshd as soon as possible and 3) bring up user/vm/container disks. Once the disks are verified to be sane enough to continue, it might want to bring up the rest of the networking and it might want to bring up an sshd with a different config. Of course if the disks are screwed up, the best thing might be to bring up part of the system or leave parts of it shutdown even if their normal dependancies are all met. Too bad most systems sit at a console prompt waiting for a human to tell them what to do with the broken disk. Compare price here is the best websitewww.pricekhan.com