Gegenwärtig werden 3 Haupt-Init-Systeme von Linux verwendet. Vor ein paar Jahren gab es nur einen, SysVinit. In SysVinit mangelte es jedoch stark an Funktionen wie der grafischen Darstellung von Dienstabhängigkeiten, sodass es in den meisten Distributionen mittlerweile veraltet ist. Derzeit wechseln die meisten Distributionen zu systemd . Es gibt aber auch Emporkömmlinge .
Aber hier ist die Antwort auf Ihre Frage für jedes der 3 Init-Systeme:
SysVinit
SysVinit wird derzeit von Debian und RedHat verwendet. Die nächste Version von RedHat (7) wird jedoch systemd verwenden.
Die universelle Möglichkeit, SysVinit-Dienste beim Booten zu aktivieren, besteht darin, sie mit /etc/rc3.d
(oder /etc/rc2.d
) zu verknüpfen . Alle Dienstleistungen finden Sie in /etc/init.d
. Beachten Sie jedoch, dass Distributionen häufig über ein eigenes Tool zum Verwalten dieser Dateien verfügen und stattdessen dieses Tool verwendet werden sollte. (Fedora / RedHat hat service
und chkconfig
, Ubuntu hat update-rc.d
)
Liste Dienste:
ls /etc/init.d/
Dienst starten:
/etc/init.d/{SERVICENAME} start
oder
service {SERVICENAME} start
Dienst anhalten:
/etc/init.d/{SERVICENAME} stop
oder
service {SERVICENAME} stop
Dienst aktivieren:
cd /etc/rc3.d
ln -s ../init.d/{SERVICENAME} S95{SERVICENAME}
(Mit S95
wird die Reihenfolge festgelegt. S01 startet vor S02 usw.)
Dienst deaktivieren:
rm /etc/rc3.d/*{SERVICENAME}
Systemd
Die bekannteste Distribution, die systemd verwendet, ist Fedora. Obwohl es von vielen anderen benutzt wird. Zusätzlich wird Debian, nachdem es sich entschieden hat, systemd anstelle von upstart zu verwenden, das defacto-upstart-System für die meisten Distributionen sein (Ubuntu hat bereits angekündigt, dass sie upstart für systemd löschen werden).
Liste Dienste:
systemctl list-unit-files
Dienst starten:
systemctl start {SERVICENAME}
Dienst anhalten:
systemctl stop {SERVICENAME}
Dienst aktivieren:
systemctl enable {SERVICENAME}
Dienst deaktivieren:
systemctl disable {SERVICENAME}
Emporkömmling
Upstart wurde von den Ubuntu-Leuten entwickelt. Aber nachdem sich Debian für systemd entschieden hatte , kündigte Ubuntu an, sie würden den Emporkömmling fallen lassen .
Upstart wurde auch kurz von RedHat verwendet, da es in RHEL-6 vorhanden ist, aber es wird nicht häufig verwendet.
Liste Dienste:
initctl list
Dienst starten:
initctl start {SERVICENAME}
Dienst anhalten:
initctl stop {SERVICENAME}
Dienst aktivieren:
2 Möglichkeiten leider:
Es wird eine Datei geben, /etc/default/{SERVICENAME}
die eine Zeile enthält ENABLED=...
. Ändern Sie diese Zeile in ENABLED=1
.
Es wird eine Datei geben /etc/init/{SERVICENAME}.override
. Stellen Sie sicher, dass es enthält start
(oder nicht vorhanden ist), nicht manual
.
Dienst deaktivieren:
echo manual > /etc/init/{SERVICENAME}.override
Hinweis: Es gibt auch das von Gentoo verwendete Init-System 'OpenRC'. Derzeit ist Gentoo die einzige Distribution, die es verwendet, und es wird weder für die Verwendung in Betracht gezogen, noch von einer anderen Distribution unterstützt. Ich gehe also nicht auf seine Verwendung ein (obwohl ich es hinzufügen kann, wenn ich der Meinung bin, dass ich es tue).