Comparison of init systems
From Gentoo Wiki
Basic information
| sysvinit / BSD init | OpenRC | upstart | systemd | SMF | launchd | |
|---|---|---|---|---|---|---|
| Supported in Gentoo | partially (used by OpenRC) | Yes (default init) | No | Yes | No | No |
| Package / Bug# | sys-apps/sysvinit | sys-apps/openrc | bug #150190 | sys-apps/systemd | - | - |
| Supported platforms | Linux / BSD | Linux + BSD | Linux | Linux | Solaris | MacOSX |
| Main coding language | C | POSIX shell (+ C) | C | C | C | C |
| Main dependencies | - | init (sysv or BSD) | D-Bus | D-Bus | init(sysv?) | - |
| Init script/service format | single config file | shell scripts | config files (libNIH) | config files (ini) | XML (+ shell scripts) | plist |
| Per-service configuration | No | Yes (conf.d) | ? | partially | ? | ? |
| Running as a daemon | Yes (PID 1) | No | Yes (PID 1) | Yes (PID 1) | Yes (invoked) | Yes (PID 1) |
| Cross-service dependencies | No | Yes | Yes (events) | Yes | Yes | Yes |
| Parallel service startup | Yes | Yes (optional) | ? | Yes | Yes | Yes |
| Keeping daemons alive | Yes | No | Yes | Yes | Yes | Yes |
| Preferred service file supplier | n/a | Gentoo | Ubuntu | upstream | Solaris | MacOSX |
| License | GPL v2+ | 2-cl. BSD | GPL v2 | LGPL v2.1+ | ? | Apache License 2.0 |
Supported services (in Gentoo)
| 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 | extensive (own framework) | external (NetworkManager, DHCP daemons) |
| X11 Display Manager setup | single service for all (required to auto-restart) | separate DM units |