In Windows habe ich den Dienste-Manager, in dem ich alle Systemdienste sehe, die über Windows selbst gestartet werden können, ich richte den Benutzer ein, den er verwendet, die Rechteverwaltung ist darin, und ich kann Variablen und einige andere Informationen an die Dienste übergeben , ich kann sie benennen, und ich kann doppelte Dienste eines Programms erstellen und so weiter. Ich habe also ein Hauptverwaltungstool in Windows.
Wie kann ich dasselbe unter Linux tun? Wie kann ich auslösen, dass „svnserve“ beim Start ausgeführt wird, oder wie kann ich Dienste so konfigurieren, dass sie in einem speziellen Kontext ausgeführt werden? Wie kann ich alle „programmierten“ Dienste anzeigen?
Akzeptierte Antwort:
Es gibt derzeit 3 Haupt-Init-Systeme, die von Linux verwendet werden. Vor ein paar Jahren gab es nur eine, SysVinit. Aber SysVinit fehlte es ernsthaft an Funktionen wie der grafischen Darstellung von Dienstabhängigkeiten, sodass es in den meisten Distributionen inzwischen veraltet ist. Derzeit wechseln die meisten Distributionen zu systemd. Obwohl es auch Emporkömmlinge gibt.
Aber hier ist die Antwort auf Ihre Frage für jedes der 3 Init-Systeme:
SysVinit
SysVinit wird derzeit von Debian und RedHat verwendet. Obwohl die nächste Version von RedHat (7) systemd verwenden wird.
Die universelle Möglichkeit, SysVinit-Dienste beim Booten zu aktivieren, besteht darin, sie in /etc/rc3.d
zu symbolisieren (oder /etc/rc2.d
). Alle Dienste sind in /etc/init.d
zu finden . Beachten Sie jedoch, dass Distributionen oft ihr eigenes Tool zum Verwalten dieser Dateien haben und dieses Tool stattdessen verwendet werden sollte. (Fedora/RedHat hat service
und chkconfig
, Ubuntu hat update-rc.d
)
Dienste auflisten:
ls /etc/init.d/
Dienst starten:
/etc/init.d/{SERVICENAME} start
oder
service {SERVICENAME} start
Dienst beenden:
/etc/init.d/{SERVICENAME} stop
oder
service {SERVICENAME} stop
Dienst aktivieren:
cd /etc/rc3.d
ln -s ../init.d/{SERVICENAME} S95{SERVICENAME}
(der S95
wird verwendet, um die Reihenfolge anzugeben. S01 beginnt vor S02 usw.)
Dienst deaktivieren:
rm /etc/rc3.d/*{SERVICENAME}
Systemd
Die bemerkenswerteste Distribution, die systemd verwendet, ist Fedora. Obwohl es von vielen anderen verwendet wird. Da Debian sich entschieden hat, systemd statt upstart zu verwenden, wird es außerdem das defacto upstart-System für die meisten Distributionen (ubuntu hat bereits angekündigt, dass sie upstart für systemd fallen lassen werden).
Dienste auflisten:
systemctl list-unit-files
Dienst starten:
systemctl start {SERVICENAME}
Dienst beenden:
systemctl stop {SERVICENAME}
Dienst aktivieren:
systemctl enable {SERVICENAME}
Dienst deaktivieren:
systemctl disable {SERVICENAME}
Neuling
Upstart wurde von den Ubuntu-Leuten entwickelt. Aber nachdem sich debian für systemd entschieden hatte, kündigte Ubuntu an, dass sie upstart fallen lassen würden.
Upstart wurde auch kurzzeitig von RedHat verwendet, da es in RHEL-6 vorhanden ist, aber nicht häufig verwendet wird.
Verbunden:Wie schafft es Coreutils Datum, so seltsame Ergebnisse zu erzielen?Dienste auflisten:
initctl list
Dienst starten:
initctl start {SERVICENAME}
Dienst beenden:
initctl stop {SERVICENAME}
Dienst aktivieren:
2 Wege leider:
-
Es wird eine Datei
/etc/default/{SERVICENAME}
geben die eine ZeileENABLED=...
enthält . Ändern Sie diese Zeile inENABLED=1
. -
Es wird eine Datei
/etc/init/{SERVICENAME}.override
geben . Stellen Sie sicher, dass esstart
enthält (oder fehlt ganz), nichtmanual
.
Dienst deaktivieren:
echo manual > /etc/init/{SERVICENAME}.override
Hinweis:Es gibt auch das ‚OpenRC‘-Init-System, das von Gentoo verwendet wird. 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. Daher decke ich seine Verwendung nicht ab (obwohl ich es meiner Meinung nach tun kann, kann ich es hinzufügen).