Mehrfach-Aufruf von rc.shutdown möglich

PhysChemist

Well-Known Member
Hallo,

ich habe in rc.shutdown ein paar Sachen stehen, die unter bestimmten Bedingungen einige Zeit benötigen. Weil ich mal wieder nicht bei der Sache war, habe ich letztens halt(8) ein zweites mal ausgeführt, woraufhin zwei Instanzen von rc.shutdown ausgeführt wurden (gaaanz schlecht!).

Wäre es eine saubere Lösung zu Beginn z.B. auf das vorhanden sein eines Verzeichnises zu prüfen (ala if(mkdir /tmp/shutdown)... ) und falls es existiert rc.shutdown durch eine Endlosschleife 'hängen' zu lassen oder wie vermeide ich am besten, dass Befehle nicht zweimal gleichzeitig ausgeführt werden.


Ich hoffe ich habe mich nicht zu unklar ausgedrück ;)

PhysChemist
 
Ja. Du könntest ein Lock-File erstellen bevor du deine zeitbedürftigen Sachen machst.
touch /var/spool/lock/shutdown

Dann gleich am Anfang von rc.shutdown ein
Code:
if [ -x /var/lock/shutdown ]; then
  ...
fi
Als letzter Aufruf sollte dann aber das FIle wieder gelöscht werden. Sonst hast du Klimbim beim nächsten Mal... (Oder beim Start des System das Lockfile löschen lassen. Zwischen Stoppen und Starten passiert ja nicht so viel ;) )
 
Das wäre nicht synchron und kann schief gehen. Hierfür sollte man lockf verwenden. Allerdings werden beim Shutdown ja die Dateisysteme verschwinden, also funktioniert das auch nicht wirklich.
 
Hallo,

vielen Dank für die Hinweise. Ich wollte mkdir(1) nehmen, weil es meines wissens atomar funktioniert, aber lockfile(1) ist die saubere Methode.

Um das löschen des locks wollte ich mich drücken. Wenn es in /tmp liegt fliegt es beim nächsten booten sowieso raus.

Das aushängen der Dateisysteme erfolgt erst nach beenden von rc.shutdown, damit kriege ich hoffentlich keine Probleme.

So long
PhysChemist
 
Du könntest vielleicht auch einen PR erstellen, damit das Problem allgemein gelöst wird.
 
Back
Top