Wie entferne ich / backup script von /etc/init.d/?

24

Ich habe eine Weile mit Linux gearbeitet, aber auf eine ziemlich einfache Art und Weise.

Ich verstehe, dass Skripte in init.dausgeführt werden, wenn das Betriebssystem gestartet wird, aber wie genau funktioniert es?

Was ist, wenn ich ein Skript behalten möchte, es aber nicht automatisch starten soll?

Angenommen, ich habe ein /etc/init.d/varnishund möchte es vorübergehend deaktivieren. Wie stelle ich sicher, dass es nicht startet, wenn das Betriebssystem neu startet? Ich möchte das Skript nicht löschen. Was ist, wenn ich es erneut hinzufügen möchte?

iDev247
quelle

Antworten:

34

Es gibt verschiedene Möglichkeiten. Wenn Sie dies nur vorübergehend tun möchten, können Sie das Ausführungsbit aus der Datei entfernen:

$ chmod -x /etc/init.d/varnish

Fügen Sie es dann gegebenenfalls erneut hinzu:

$ chmod +x /etc/init.d/varnish

Der "offizielle" Weg in Ubuntu (sowie in Debian und anderen Debian-Derivaten) ist jedoch, den update-rc.dBefehl zu verwenden:

$ update-rc.d varnish disable

Dadurch werden alle Symlinks aus den Ordnern /etc/rcX.d entfernt, die dafür sorgen, dass der Dienst bei Bedarf gestartet und gestoppt wird.

Weitere Informationen finden Sie auf der Manpage update-rc.d .

EEAA
quelle
Danke für die tolle Resonanz! chmodist eine einfache Lösung! Ich habe angefangen, manpages.ubuntu.com/manpages/precise/man8/update-rc.d.8.html zu lesen, und ich verstehe jetzt init besser. Ich muss nachdenken ... Ich sollte mehr im Handbuch lesen.
iDev247,
Froh, dass ich Helfen kann. Ich sollte beachten, dass die chmod-Lösung nur sehr vorübergehend verwendet werden sollte. Ich habe das nicht überprüft, aber ich konnte sehen, dass das Upstart-System (was Ubuntu verwendet, um Prozesse automatisch zu starten / zu stoppen) dadurch verwirrt wird.
EEAA
9
$ sudo update-rc.d -f servicename remove
Rogerio Soares
quelle
1
Diese Antwort stimmt nicht mit der Frage überein, bei der das Skript beibehalten werden soll. „Entfernt beim Aufrufen mit der Option remove update-rc.dalle Verknüpfungen in den /etc/rcrunlevel.dVerzeichnissen zum Skript /etc/init.d/name. Das Skript muss bereits gelöscht worden sein. “ Manpages.ubuntu.com/manpages/xenial/de/man8/update-rc.d.8.html
Melebius