Wie stoppe ich ein Programm, das beim Start unter Linux ausgeführt wird? Ich möchte einige Apps aus dem Startup entfernen, damit sie supervisord
zB von apache2 verwaltet werden können
Wie stoppe ich ein Programm, das beim Start unter Linux ausgeführt wird? Ich möchte einige Apps aus dem Startup entfernen, damit sie supervisord
zB von apache2 verwaltet werden können
Antworten:
Verwenden Sie je nach Distribution das Tool chkconfig oder update-rc.d, um Systemdienste zu aktivieren / deaktivieren.
Auf einem Red Hat / Suse / Mandrake Style System:
sudo chkconfig apache2 off
Unter Debian:
sudo update-rc.d -f apache2 remove
Weitere Informationen finden Sie in den Manpages.
Wenn Sie mit einem modernen Ubuntu-System und einigen anderen Distributionen arbeiten, müssen Sie möglicherweise eine Kombination aus herkömmlichen Init-Skripten und Upstart-Skripten verwenden. Die Verwaltung von Init-Skripten wird durch andere Antworten abgedeckt. Mit der folgenden Methode können Sie verhindern, dass ein Startdienst beim Start gestartet wird:
# mv /etc/init/servicename.conf /etc/init/servicename.conf.disabled
Das Problem bei dieser Methode besteht darin, dass Sie den Dienst nicht mit den folgenden Methoden starten können:
# service start servicename
Alternativ dazu können Sie die servicename.conf
Datei in Ihrem bevorzugten Editor öffnen und alle Zeilen auskommentieren, die mit folgendem beginnen:
start on
Ändern Sie dies also in
#start on ...
wo das "..." ist was auch immer vorher nach "start on" war. Auf diese Weise müssen Sie sich beim erneuten Aktivieren nicht mehr an die Parameter für "Start bei" erinnern.
Wenn Sie eine neue Version von upstart haben, können Sie am Ende der Konfigurationsdatei einfach das Wort "manual" hinzufügen. 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 früher in der Datei ignoriert.
Auf den neuesten Fedora- und Future RHEL-Systemen
systemctl disable httpd.service
Deaktiviert den httpd-Dienst
systmctl
Befehl funktionierte gut.
So listen Sie alle Startdienste auf
systemctl
So verhindern Sie, dass ein Dienst beim Start ausgeführt wird
sudo systemctl disable servicename
Zum Beispiel, wenn wir ssh Server beim Start stoppen müssen
sudo systemctl disable sshd.service
Wir können dies wieder mit aktivieren
sudo systemctl enable sshd.service
Fast alle Linux-Distributionen verwenden systemd für das Bootstrapping von Startdiensten. Daher funktionieren die obigen Befehle für die meisten Distributionen.
Slackware und Arch Linux haben ähnliche Methoden zum Stoppen / Starten von Prozessen beim Booten, die sich von den oben aufgeführten Beispielen im Ubuntu- und Redhat-Stil unterscheiden.
Sowohl unter Slackware als auch unter Arch Linux sind sh-Skripte in einem Verzeichnis vorhanden /etc/rc.d
, normalerweise ein Skript pro Daemon oder ein Skript pro Subsystem.
Beispielsweise startet Slackware den Apache-Webserver mit einem Skript /etc/rc.d/rc.httpd
, das zum entsprechenden Zeitpunkt während des Systemstarts mit dem Argument "start" aufgerufen wird. Arch Linux hat unterschiedlich benannte Skripte, aber das Gleiche passiert.
Um zu verhindern, dass ein Prozess während des Systemstarts gestartet wird, müssen Sie unter Slackware lediglich das entsprechende Skript in /etc/rc.d nicht ausführbar machen. So verhindern Sie, dass Apache beim nächsten Start gestartet wird:
chmod -x /etc/rc.d/rc.httpd
So stoppen Sie einen Apache, der beim Booten gestartet wurde: /etc/rc.d/rc.httpd stop
Sie müssen root sein.
Arch ist etwas komplexer. Die Datei /etc/rc.conf, ein Shell-Skript, enthält ein Array DAEMONS. Um zu verhindern, dass Apache beim Booten startet, ändern Sie diese Zeile in /etc/rc.conf:
DAEMONS=(hal syslog-ng network netfs crond alsa sshd httpd ntpd postgresql)
Zu dieser Zeile:
DAEMONS=(hal syslog-ng network netfs crond alsa sshd ntpd postgresql)
Um einen bereits ausgeführten Apache zu stoppen, führen Sie ihn /etc/rc.d/httpd stop
als root aus.
Unter Ubuntu 10.04 können Sie einige Startprogramme über die GUI steuern.
System→ Preferences→Startup Applications
1) Tippen Sie auf Ihrer Tastatur auf die Supertaste. 2) Suchen Sie nach "Startup Applications". 3) Wählen Sie das Programm aus, das Sie deaktivieren möchten.