Risposte:
Prova il timeout
comando. Per esempio:
0 * * * * timeout -2 3540 /path/to/your_command.sh
invierà un SIGINT al tuo comando se non è stato completato in 59 minuti.
usage: timeout [-signal] time command...
timeout: /usr/bin/timeout
No. Il modo in cui lo facciamo è creare uno script con un file di blocco e fare in modo che lo script controlli quel file di blocco prima di riavviarlo, quindi può verificare se è già in esecuzione e decidere se è in esecuzione, se attende che l'altro lo faccia fine o se uccide l'altro prima di correre.
Un file di blocco è solo un file vuoto o un file con l'altro script PID
salvato da qualche parte come /var/run
o /var/lock
.