Empfohlene Methode zum Deaktivieren eines Dienstes in Debian

10

Gibt es eine "empfohlene Möglichkeit", einen Dienst in Debian zu deaktivieren? (Deaktivieren = Der Dienst wird installiert, startet jedoch nicht automatisch, wenn der Computer startet.)

Ich weiß, dass Sie dies können update-rc.d -f service remove(wodurch im Grunde genommen die Links entfernt werden rcX.d), aber dabei verlieren Sie die Sequenznummer des Dienstes ( SXXservicewobei XX die Sequenznummer ist), was das Leben schwieriger macht, wenn Sie den Dienst wieder aktivieren möchten. Ich weiß auch, dass ich die Links einfach umbenennen kann, rcX.ddamit sie nicht beginnen S(oder sie an einen anderen Ort verschieben), aber ich habe mich gefragt, ob es dafür eine von Debian genehmigte Best-Practice-Methode gibt.

Heinzi
quelle

Antworten:

12

Schauen Sie sich die Manpage update-rc.d an. Der dritte Absatz des Abschnitts mit dem Namen Installieren von Init-Skript-Links lautet…

Ein häufiger Systemverwaltungsfehler besteht darin, die Links mit dem Gedanken zu löschen, dass dadurch der Dienst "deaktiviert" wird, dh dass dadurch der Dienst nicht gestartet wird. Wenn jedoch alle Links gelöscht wurden, führt das Postinst-Skript des Pakets beim nächsten Upgrade des Pakets update-rc.d erneut aus und installiert die Links an den werkseitigen Standardpositionen neu. Die richtige 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.

Die letzten beiden Sätze sollten Ihre Frage beantworten. :-)

Verurteilen
quelle
Zum Beispiel:sudo update-rc.d postgresql disable
Lluís
5

Sie können das Dienstprogramm "sysv-rc-conf" ausprobieren, um Ihr Leben ein wenig einfacher zu gestalten. Es ist eher das chkconfig-Tool eines anderen Systems.

Geben Sie einfach bei der Eingabeaufforderung Folgendes ein:

sudo apt-get install sysv-rc-conf

Prost!

unixbhaskar
quelle
Schönes Werkzeug, danke. Ich sehe, dass es auch Dienste korrekt deaktiviert (dh durch Umbenennen des Symlinks in K ...).
Heinzi
2

Tatsächlich sysv-rc-confwird der Ansatz sogar von der Manpage update-rc.d empfohlen:

Bitte beachten Sie, dass dieses Programm für die Verwendung in Paketverwaltungsskripten entwickelt wurde und dementsprechend nur die sehr eingeschränkte Funktionalität aufweist, die für solche Skripten erforderlich ist. Systemadministratoren werden nicht aufgefordert, update-rc.d zum Verwalten von Runlevels zu verwenden. Sie sollten die Links direkt bearbeiten oder stattdessen Runlevel-Editoren wie sysv-rc-conf und bum verwenden.

lubomir.brindza
quelle
0

Nach meinem Verständnis besteht die "Best Practice von Debian" darin, das Paket zu deinstallieren . Sie sollten keine Pakete installiert haben, wenn Sie sie nicht verwenden. Aus diesem Grund sind alle Debian-Pakete so konfiguriert, dass sie bei der Installation gestartet werden.

(Diese wenigen Pakete, deren Installation ohne Ausführung nützlich sein könnte, haben normalerweise eine Einstellung in ihren /etc/default/<packagename>Konfigurationsdateien, um das Starten zu deaktivieren.)

Teddy
quelle
2
Sie missverstehen. "Nicht automatisch beim Booten starten" bedeutet nicht "das Paket überhaupt nicht verwenden". Als ein vereinfachtes Beispiel möchte ich vielleicht, dass mein SSH-Server nach Bedarf von xinetd gestartet wird, anstatt beim Booten als Daemon zu starten.
Quacksalber Quijote