Ich habe einen Cronjob, der stündlich ausgeführt wird und gelegentlich zu lange dauert. Gibt es eine Möglichkeit, eine maximale Laufzeit festzulegen, und der Job wird beendet, wenn er diesen Wert überschreitet?
Dies ist auf einem Ubuntu 10.04-Server.
Danke, jebw
usage: timeout [-signal] time command...
timeout: /usr/bin/timeout
Nee. Die Art und Weise, wie wir dies tun, besteht darin, ein Skript mit einer Sperrdatei zu erstellen und das Skript für diese Sperrdatei überprüfen zu lassen, bevor es erneut ausgeführt wird, damit es überprüfen kann, ob es bereits ausgeführt wird, und entscheiden kann, ob es ausgeführt wird, wenn es darauf wartet, dass das andere ausgeführt wird Ende oder wenn es den anderen vor dem Laufen tötet.
Eine Sperrdatei ist nur eine leere Datei oder eine Datei, in der das andere Skript
PID
irgendwo wie/var/run
oder gespeichert ist/var/lock
.quelle
Die Antwort von cakemox ist die beste. Andernfalls legen Sie die PID einfach in eine Datei oder verwenden Sie killall für einen weiteren Cronjob eine Minute zuvor, um den Vorgang abzubrechen.
quelle