Comparison of init systems

From Gentoo Wiki
Jump to: navigation, search
Feature Init system
sysvinit / BSD init OpenRC upstart systemd SMF launchd Epoch finit
Supported in Gentoo partially (used by OpenRC) Yes (default init) No Yes No No Yes No
Package / Bug# sys-apps/sysvinit sys-apps/openrc bug #498376 sys-apps/systemd - - sys-apps/epoch -
Supported platforms Linux / BSD Linux + BSD Linux Linux Solaris MacOSX Linux Linux
Main coding language C POSIX shell (+ C) C C C C C C
Main dependencies - init (sysv or BSD) D-Bus D-Bus init(sysv?) - libc, /bin/sh  ?
Init script/service format single config file shell scripts config files + shell fragments config files (ini) XML (+ shell scripts) plist multiple or single .conf multiple or single .conf
Per-service configuration No Yes (conf.d) With in-job mechanisms (normal exit, respawn) Yes  ?  ? Yes (v1.1+)  ?
Running as a daemon Yes (PID 1) No Yes (PID 1) Yes (PID 1) Yes (invoked) Yes (PID 1) Yes (PID 1) Yes (PID 1)
Cross-service dependencies/events No Yes Yes Yes Yes No Yes (basic support, v1.3+)  ?
Parallel service startup Yes Yes (optional) Yes Yes Yes Yes No Yes
Keeping daemons alive Yes Yes (optional v0.21+ via supervise-daemon) Yes Yes Yes Yes Yes Yes
Preferred service file supplier n/a Gentoo Ubuntu upstream Solaris MacOSX n/a n/a
License GPL v2+ 2-cl. BSD GPL v2 LGPL v2.1+ ? Apache License 2.0 Public Domain ?

Supported services (in Gentoo)

Feature OpenRC Systemd
Filesystem mounting one script per group (root, local, network, swap...) two units per mountpoint (fsck + mount), runtime-generated with dependencies
getty (terminal prompts) started through inittab one unit per console, instantiated from template on-demand
Networking setup several options[1] like dhcpcd[2][3] netifrc[4] or networkmanager[5][6] external (NetworkManager, networkd, DHCP daemons)
X11 Display Manager setup single service for all (required to auto-restart) separate DM units

See also

External resources