
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 kdm
Initskript und
# Provides: yourscript
in Ihrem benutzerdefinierten Initskript.
Um zu vermeiden, dass die Änderungen am kdm
Initskript bei Upgrades verloren gehen, können Sie dessen LSB-Header in eine insserv
Override-Datei /etc/insserv/overrides
(mit demselben Namen) kopieren und diese stattdessen bearbeiten.