Vergleich der Init-Systeme
From Gentoo Wiki
Dieser Artikel vergleicht und kontrasiert Init-Systeme. Einige der unten verglichenen Init-Systeme sind für Gentoo verfügbar, während andere (wie launchd und SMF) es nicht sind.
Verfügbare Software
Feature | Init system | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
sysvinit | OpenRC | upstart | systemd | SMF | launchd | Epoch | finit | runit | s6 + s6-rc | BSD rc.d | |
Supported in Gentoo | partially (used by OpenRC) | Yes (default init) | No | Yes | No | No | Yes | No | Yes | No | No |
Package / Bug# | sys-apps/sysvinit | sys-apps/openrc | bug #498376 sys-apps/upstart in unity-gentoo overlay. |
sys-apps/systemd | - | - | sys-apps/epoch | - | sys-process/runit | sys-apps/s6 + sys-apps/s6-rc | - |
Supported platforms | Linux / BSD | Linux + BSD | Linux | Linux | Solaris | MacOSX | Linux | Linux | Linux / BSD / MacOSX | Linux / BSD / MacOSX | BSD |
Main coding language | C | POSIX shell (+ C) | C | C | C | C | C | C | C | C | POSIX shell (+ C) |
Main dependencies | - | init (sysv or BSD) | D-Bus | D-Bus | init(sysv?) | - | libc, /bin/sh | ? | - | skalibs, execline | rcorder |
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 | shell scripts | execline or shell scripts | shell scripts |
Per-service configuration | No | Yes (conf.d) | With in-job mechanisms (normal exit, respawn) | Yes | Yes (service instances) | ? | Yes (v1.1+) | ? | No | No | No |
Running as a daemon | Yes (PID 1) | Yes (PID 1) | Yes (PID 1) | Yes (PID 1) | Yes (invoked) | Yes (PID 1) | Yes (PID 1) | Yes (PID 1) | Yes (PID 1) | Yes (sys-apps/s6-linux-init) | Yes (PID 1) |
Cross-service dependencies/events | No | Yes | Yes | Yes | Yes | No | Yes (basic support, v1.3+) | ? | Yes | Yes | Yes |
Parallel service startup | Yes | Yes (optional) | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
Keeping daemons alive | Yes | Yes (optional v0.21+ via supervise-daemon) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Preferred service file supplier | n/a | Gentoo | Ubuntu | upstream | Solaris | MacOSX | n/a | n/a | Void Linux | n/a | NetBSD, FreeBSD, OpenBSD |
License | GPL v2+ | 2-cl. BSD | GPL v2 | LGPL v2.1+ | ? | Apache License 2.0 | Unlicense | MIT | BSD | ISC | BSD |
Unterstützte Dienste (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 /etc/inittab or via agetty script | One unit per console, instantiated from template on-demand. |
Networking setup | Several options[1] like dhcpcd[2][3], netifrc[4], iwd [5], or NetworkManager.[6][7] | External (NetworkManager, networkd, DHCP daemons). |
X11 Display Manager setup | Single service for all (required to auto-restart). | Separate DM units. |
Siehe auch
- Runit — a daemontools-inspired process supervision suite that also provides a program suitable for running as process 1.
- S6 and s6-rc-based init system — an init system built using components from the s6, s6-rc and s6-linux-init packages
- OpenRC — a dependency-based init system for Unix-like systems that maintains compatibility with the system-provided init system (siehe den init Abschnitt).
Externe Ressourcen
- s6 - Forum thread
- Forum thread
- openrc-init
- GNU shepherd - service manager for the GNU OS.