Ich würde die Verwendung des Befehls run-one empfehlen - viel einfacher als das Behandeln der Sperren. Aus den Dokumenten:
run-one ist ein Wrapper-Skript, das nicht mehr als eine eindeutige Instanz eines Befehls mit einem eindeutigen Satz von Argumenten ausführt. Dies ist häufig bei Cronjobs hilfreich, wenn Sie nicht mehr als eine Kopie gleichzeitig ausführen möchten.
run-this-one ist genau wie run-one, außer dass es pgrep und kill verwendet, um alle laufenden Prozesse zu finden und zu beenden, die dem Benutzer gehören und mit den Zielbefehlen und -argumenten übereinstimmen. Beachten Sie, dass run-this-one blockiert, während versucht wird, übereinstimmende Prozesse abzubrechen, bis alle übereinstimmenden Prozesse beendet sind.
run-one-constant funktioniert genauso wie run-one, außer dass es "COMMAND [ARGS]" bei jedem Beenden von COMMAND erneut ausgibt (null oder nicht null).
Keep-One-Running ist ein Alias für Run-One-Constant.
run-one-until-success funktioniert genauso wie run-one-constant, mit der Ausnahme, dass es "COMMAND [ARGS]" erneut ausgibt, bis COMMAND erfolgreich beendet wird (dh Null verlässt).
run-one-until-failure funktioniert genauso wie run-one-constant, mit der Ausnahme, dass es "COMMAND [ARGS]" erneut erzeugt, bis COMMAND mit einem Fehler beendet wird (dh nicht Null endet).