When comparing systemd vs runit, the Slant community recommends runit for most people. In the question“What are the best Linux init systems?” runit is ranked 1st while systemd is ranked 4th. The most important reason people chose runit is:
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.
Ranked in these QuestionsQuestion Ranking
Pro Cgroups processes control
Systemd groups all processes by services using Linux's cgroups. Think about memory/cpu/tasks/IO/Net limits and accounting for any service.
Pro Default for many popular distributions
Systemd is the default init system for many popular Linux distributions (Arch, Debian, Ubuntu, openSUSE, Fedora, etc..). It should also be noted that some of those distributions allow users to use a different init system if they want.
Pro Login management out of the box
Systemd contains a daemon called logind which is used for managing user logins.
Does one thing and does it well.
Pro Small and Unix-like
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.
Pro Fast, parallel startup
After the system's one time tasks (stage 1) are done, the system services are started up in parallel. The operating system's process scheduler takes care of having the services available as soon as possible.
Pro Easy to use
Simple scripts linked to the proper directory is all that's needed to bring a service up at boot, and everything is up and running quickly.
Pro Runs on every POSIX system
Pro Supported by several Linux plumbers
Myself included. Development is no longer stalled.
Con Not UNIX-like
One of the main argument that people who are against using systemd is that it does not follow on of UNIX'S core philosophies. 'Do one thing and do it well', instead systemd represents a collection of dozens of tightly coupled libraries. With responsibilities that exceed those of a simple init system because it also tries to handle things like device management, power management, mount points, cron, encryption, syslog, network configuration etc...
Con Makes dependent products difficult to port
Software dependent on systemd. Becomes difficult to port to systems that lack systemd.
Con Too monolithic
It tries to do too much. I don't think most people who use systemd are even aware of most of the features as they don't really use them. It makes it really complicated to deal with sometimes, and it's possible that in a few years this project will be a nightmare to maintain, and with that the users of it will start to feel the fallout.
Con Need glibc
Con Runs only on Linux
Con Lead developer shows near complete lack of care for standards of quality needed for developing a part of an OS as integral as the init system is
Con Developenemt stalled
Last patch was back in 2014