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?
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 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.
It'll already run on anything with a Linux kernel.
For my own system, it boots in around 15 seconds to SliM login manager, which then takes me to XFCE 4.12.
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.
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.
posting to undo a moderation misclick on the above post, sorry
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
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
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...
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