Ein Init-Skript verzögern, bis ein anderer Prozess fertig ist?

Ein Init-Skript verzögern, bis ein anderer Prozess fertig ist?

Ich verwende Debian Jessie. Während des Startvorgangs möchte ich einige Benutzereingaben lesen. Dies geschieht durch ein benutzerdefiniertes Skript in /etc/init.d/ und symbolische Links in den Runlevel-Verzeichnissen. Jetzt möchte ich kdm, dass , das durch ein anderes Init-Skript gestartet wird, erst gestartet wird, wenn mein benutzerdefiniertes Skript beendet ist.

Ich könnte dies erreichen, indem ich etwas hinzufüge wie

while test -e /tmp/kdm-boot-lock
do
    echo "waiting for lock-file to be deleted by custom-script"
    sleep 1
done

zu /etc/init.d/kdm

aber mir wäre eine Lösung ohne Veränderung fremder Dateien (die evtl. durch Updates verändert werden) lieber.

Die Frage ist also: Wie kann ich verhindern, dass ein anderes (unverändertes) Init-Skript ( kdm) gestartet wird, bevor mein benutzerdefiniertes Skript fertig ist?

Antwort1

Da Sie Initscripts verwenden, besteht die richtige Möglichkeit zum Aufschieben kdm, bis Ihr benutzerdefiniertes Skript fertig ist kdm, darin, im LSB-Header eine Abhängigkeit von Ihrem benutzerdefinierten Skript zu deklarieren:

# Required-Start: ... yourscript

im kdmInitskript und

# Provides: yourscript

in Ihrem benutzerdefinierten Initskript.

Um zu vermeiden, dass die Änderungen am kdmInitskript bei Upgrades verloren gehen, können Sie dessen LSB-Header in eine insservOverride-Datei /etc/insserv/overrides(mit demselben Namen) kopieren und diese stattdessen bearbeiten.

verwandte Informationen