Ich habe einen Dienst, foo
der derzeit auf Runlevel 3 und höher startet . Wie kann ich das verhindern, ohne zu verwenden update-rc.d foo stop 3 .
, was (wenn ich es richtig verstehe) den Dienst bei jedem Runlevelwechsel abschalten würde?
(Wenn ich also Runlevel 1 erreicht und aktiviert hätte foo
, wäre es deaktiviert, wenn ich auf Runlevel 3 gewechselt wäre, nicht wahr ?)
Debian GNU / Linux Lenny ausführen.
sudo update-rc.d -f sunrpc remove
funktioniert nicht; Es ist nach einem Neustart immer noch vorhanden.ls /etc/rc*.d
16.04
update-rc.d apache2 disable
Konfigurieren Sie Linux-Startanwendungen mit sysv-rc-conf :
Wie bereits erwähnt, ist hier auch update-rc.d für die cmd-Zeile.
Führen Sie beispielsweise aus
um apache2 von allen laufebenen zu deaktivieren.
quelle
service foo stop
oder starten Sie den Server neuKurz:
Es gibt keinen zuverlässigen Weg, dies schnell zu tun.
Lange:
Derzeit gibt es für Debian (Debian unstable vom 01.06.2012) keine verlässliche Möglichkeit, einen Dienst / Daemon konsistent zu deaktivieren. - Da ein Upgrade eines Daemon-Pakets bedingungslos "/etc/init.d/package restart" ausführt und für dieses Runlevel deaktiviert ist oder nicht.
Um sicherzustellen, dass ein Daemon nicht startet, können Sie:
Es gibt / gab (?) Einen Init-Policy-Etwas-Schritt für Init-Skripte in Debian, der diese fehlende Funktionalität füllen sollte. - Ich habe versucht, es zu benutzen, fand es kompliziert, fand einen Fehler und berührte es nie wieder.
Aktualisieren:
Wechseln Sie zu "systemd", einer Alternative zu "initd". Es gibt ein Debian-Paket, und Sie können einen Dienst folgendermaßen deaktivieren:
quelle
unlink xyz.service
das auch?systemd
werden sie verwendet. - Der Link sagt also, dass nicht nach ihnen gesucht werden soll./etc/default/xyz
Datei zum Hinzufügen vonexit
nicht verhindert, dass der Packager die Datei beim nächsten Upgrade mit der richtigen Version überschreibt. (Das Paket speichert Konfigurationsdateien und in den meisten Fällen werden Init-Skripte nicht als solche angesehen.) In den meisten Fällen würde dies also nicht helfen.Führen Sie diesen Befehl aus
apt-get installiere rcconf
Nach der Installation führen Sie rcconf in SSH aus. Daraufhin wird ein Dialogfeld mit allen Diensten angezeigt, die für die Ausführung beim Systemstart festgelegt wurden. Wählen Sie diejenigen aus, indem Sie die Leertaste drücken, um sie zu deaktivieren / aktivieren. Wenn Sie fertig sind, klicken Sie einfach auf OK, und der Dienst wird beim nächsten Start nicht erneut gestartet. Ich benutze das seit Jahren. Sehr praktisches Tool für Debian / Ubuntu-Benutzer wie mich.
quelle
Ich bin verwirrt, was Sie erreichen wollen.
In welchen Runlevels soll foo laufen?
Wenn Sie immer möchten, dass es ausgeführt wird, verwenden Sie
update-rc.d foo defaults
; das stoppt es in 0, 1 und 6, während es in 2, 3, 4 und 5 läuft. (1 sollte nur eine Shell ausführen, 0 und 6 sind halt und rebooten)Wenn Sie genau angeben möchten, in welchen Ausführungsebenen ausgeführt werden soll:
quelle
Ich denke, das würde den Job machen: insserv -r foo
quelle
Starten Sie in Debian7 mit insserv
Alle Dienste und Runlevel-Informationen ausgeben
Entfernen Sie die aufgelisteten Skripte aus allen Runlevels
quelle
Ubuntus Bootup Manager ist eine Art sysv-rc-conf light , eine benutzerfreundlichere GUI-Version, und viele Leute, die diesen Thread lesen, werden das zu schätzen wissen.
http://www.marzocca.net/linux/bum.html
quelle
Auf einem Red Hat-basierten System könnten Sie verwenden
um den Server von Runlevels zu entfernen
auf debian-basierten systemen sollen alle dienste von den dateien im verzeichnis /etc/rc?.d/ gestartet werden. diese dateien haben dann einen symbolischen link zu den entsprechenden dateien im verzeichnis /etc/init.d/. Wenn Sie möchten, dass ein Dienst nicht standardmäßig gestartet wird, können Sie ihn im Verzeichnis /etc/rc?.d umbenennen / entfernen. Ihre Änderung bleibt beim Upgrade des Pakets erhalten, solange einer der Startlinks in einem der folgenden Verzeichnisse noch vorhanden ist die anderen (3,4 und 5) Verzeichnisse. Oder Sie können den Befehl update-rc.d verwenden, um die Verknüpfungen zu ändern. Wenn Sie den Dienst danach starten möchten, können Sie /etc/init.d/service_name start verwenden, wenn Sie den Start vom Ende weglassen Geben Sie die Optionen an, die verwendet werden können, z. B. Stoppen, Neustarten, Neuladen ...
Ich denke, Sie können sysv-rc-conf verwenden, um es zu deaktivieren.
quelle
Wenn Sie Laufebenen angeben möchten.
Denken Sie daran, den Dienst in den Namen des Programms zu ändern .
quelle
Warum sichern Sie das Startskript nicht woanders und entfernen es in der Datei /etc/init.d/? Wenn das Update-rc.d nicht funktioniert.
quelle