What is the best alternative to systemd?
Here’s the Deal
Slant is powered by a community that helps you make informed decisions. Tell us what you’re passionate about to get your personalized feed and help others.
One of the runit project's principles is to keep the code size small. As of version 1.0.0 of runit, the runit.c source contains 330 lines of code; the runsvdir.c source is 274 lines of code, the runsv.c source 509. This minimizes the possibility of bugs introduced by programmer's fault, and makes it more easy for security related people to proofread the source code. The runit core programs have a very small memory footprint and do not allocate memory dynamically. See More
Portable: Linux, BSD, Solaris POSIX. Can be compiled with musl. A lot of features including dependencies service management. Easy to implement with the conjunction of 66 which provide frontend file for service declaration, automatic logger creation,nested supervision tree,user service,instantiated services and many more. Best alternative ever. Work out of the box, PROC was made on Gentoo, Funtoo, Devuan, KISS linux, Adelie, Void, Antix. Default init system and service manager on Obarun and from a long time ago. See More
Every init script needs to reinvent the wheel for every script: argument processing, start/stop/restart/reload/status/whatever processing, finding/clearing/creating PID files, sourcing defaults, building and setting configuration options, so on and so forth. See More
Every init script spawns at least sh/dash/bash, and probably also additional processes such as cat, echo, start-stop-daemon, etc, just to start a single daemon that may not even be needed at the time of boot. This massive overhead results in poor performance, and is a killer for embedded systems. See More
Comes with a directory tree of symlinks to handle the runtime dependencies with links like S01whatever and K11whatever to start/stop services in a specific runlevel. Writing init scripts that conform to the LSBInit standard of LSB, which does allow to define the dependencies in the script header, doesn't always get you covered. See More
Since it is event based, it was simple to have interdependent services emit status messages each other. Service start ordering and shutdown was easily managed in one conf file. The "lazy" start of systemd is BS and is a mess to debug . service unit files have no clue what another service state is. The maintainers add arbitrary timers that add more complexity and more init hangs. The systemd documentation is poor. When a service fails to start (or stop) systemd follows the Microsoft model of not telling the reason why. See More