So verhindern Sie, dass ein Daemon beim Booten in Debian gestartet wird

16

Es gibt ein paar Dämonen, die ich beim Booten deaktivieren kann. Als Beispiel verwende ich Folgendes:

 sudo update-rc.d -f postgresql remove

Ich bin mir nicht mal sicher, ob dieser Befehl korrekt ist und ich weiß nicht mehr, woher ich ihn habe.

Auf jeden Fall postgresqlgeht die Einstellung bei jedem Upgrade verloren (dh der Dämon wird beim Neustart gestartet).

Tshepang
quelle
1
Auf Debian mit SysVinit mag ich file-rc. Anstatt Symlinks zu verwalten, verwalte ich eine Textdatei mit meinen Runlevel-Konfigurationen.
Gilles 'SO- hör auf böse zu sein'

Antworten:

22

update-rc.dwurde ursprünglich von Paket-Upgrade-Skripten verwendet. removewird bei der Paket-Deinstallation aufgerufen und entfernt alle Links, defaultswird bei der Paket-Installation aufgerufen enableoder disablekann je nach Debconf verwendet werden und ist für Sysadmins nützlich. Die Bereinigung removeist in der Tat nicht nützlich, um einen Dienst zu deaktivieren. Von der Manpage:

Ein häufiger Systemverwaltungsfehler ist das Löschen der Links mit dem Gedanken, dass dadurch der Dienst "deaktiviert" wird, dh, dass der Dienst nicht gestartet werden kann. Wenn jedoch alle Verknüpfungen gelöscht wurden, wird beim nächsten Upgrade des Pakets das Postinst-Skript des Pakets erneut update-rc.d ausführen, und die Verknüpfungen werden an ihren werkseitigen Standardpositionen neu installiert. Die korrekte Methode zum Deaktivieren von Diensten besteht darin, den Dienst in allen Runlevels, in denen er standardmäßig gestartet wird, als gestoppt zu konfigurieren. Im System V init-System bedeutet dies, dass die symbolischen Links des Dienstes von S nach K umbenannt werden.

sudo update-rc.d postgresql disablewerde machen was du willst, weil es die rc.d symlinks behält aber mit dem K (killed, stops) Präfix. Machen Sie es mit zurück enable. Einige Dienste unterstützen das Deaktivieren ihrer /etc/defaults/$serviceDatei, aber leider gibt es Ausnahmen. Weitere Möglichkeiten zum Deaktivieren eines Dienstes bestehen darin, die /etc/init.d/$serviceDatei mit chmod -x zu versehen oder oben einzufügen exit 0.

Tobu
quelle
6

Zur Verdeutlichung der besten Lösung, ähnlich der Antwort, die Tobu gab:

  1. Sie nicht verwenden , update-rc.dmit der removeOption.
  2. Verwenden Sie stattdessen update-rc.dmit der disableOption.

Beispiel: update-rc.d postgresql disable


PLUS, Sie können auch andere, spezifischere Dienste mit finden (und deaktivieren) systemctl.

Beispiel: systemctl disable pppd-dns.service

Arahkun
quelle
+1 für den Hinweis, die Option
ENTFERNEN
3

Tobu ist absolut richtig, aber der Vollständigkeit halber gibt es ein Werkzeug , das Sie eine Smart - Überblick zu geben: sysv-rc-conf. Für Kopie & Muster:

apt-get install sysv-rc-conf

Laufen sehen sysv-rc-confSie, welches Skript in welchem ​​Runlevel ausgeführt wird. Sie können Dienste über aktivieren / deaktivieren spaceund mit beenden q.

binfalse
quelle
2
Ich mag auch rcconf, es ist in den Standard-Repos. Denken Sie daran, dass keines davon mit dem unter Ubuntu voreingestellten Upstart funktioniert. Obwohl viele Dinge noch das Erbe init verwendet.
JM Becker