
Wie beende ich ein Programm, das beim Start in Linux ausgeführt wird? Ich möchte einige Apps aus dem Start entfernen, damit sie supervisord
beispielsweise von Apache2 verwaltet werden können
Antwort1
Verwenden Sie je nach Distribution das Tool chkconfig oder update-rc.d, um Systemdienste zu aktivieren/deaktivieren.
Auf einem System im Redhat-/Suse-/Mandrake-Stil:
sudo chkconfig apache2 off
Unter Debian:
sudo update-rc.d -f apache2 remove
Weitere Informationen finden Sie auf den Manpages.
Antwort2
Wenn Sie mit einem modernen Ubuntu-System und einigen anderen Distributionen arbeiten, müssen Sie möglicherweise mit einer Kombination aus herkömmlichen Init-Skripten und Upstart-Skripten arbeiten. Die Verwaltung von Init-Skripten wird in anderen Antworten behandelt. Im Folgenden finden Sie eine Möglichkeit, den Start eines Upstart-Dienstes beim Booten zu verhindern:
# mv /etc/init/servicename.conf /etc/init/servicename.conf.disabled
Das Problem bei dieser Methode besteht darin, dass Sie den Dienst nicht mit folgendem Befehl starten können:
# service start servicename
Alternativ können Sie die servicename.conf
Datei in Ihrem bevorzugten Editor öffnen und alle Zeilen auskommentieren, die mit folgendem beginnen:
start on
Das heißt, ändern Sie dies in
#start on ...
wobei „…“ das ist, was vorher nach „Start am“ stand. Auf diese Weise müssen Sie sich nicht merken, was die „Start am“-Parameter waren, wenn Sie es wieder aktivieren möchten.
Wenn Sie eine neue Version von Upstart haben, können Sie einfach das Wort „manual“ an das Ende der Konfigurationsdatei anhängen. Sie können dies direkt von der Shell aus tun:
# echo "manual" >> /etc/init/servicename.conf
Dies führt dazu, dass Upstart alle „Start on“-Phrasen weiter oben in der Datei ignoriert.
Antwort3
So listen Sie alle Startdienste auf
systemctl
So verhindern Sie, dass ein Dienst beim Systemstart ausgeführt wird
sudo systemctl disable servicename
Wenn wir zum Beispiel den SSH-Server beim Start stoppen müssen
sudo systemctl disable sshd.service
Wir können dies wieder aktivieren mit
sudo systemctl enable sshd.service
Fast alle Linux-Distributionen verwenden systemd zum Bootstrapping von Startdiensten. Die obigen Befehle funktionieren also bei den meisten Distributionen.
Antwort4
Unter Ubuntu 10.04 können Sie einige Startprogramme über die GUI steuern.
System→ Preferences→Startup Applications