Réponses:
Essayez la timeout
commande. Par exemple:
0 * * * * timeout -2 3540 /path/to/your_command.sh
enverra un SIGINT à votre commande s'il ne s'est pas terminé dans 59 minutes.
usage: timeout [-signal] time command...
timeout: /usr/bin/timeout
Nan. La façon dont nous le faisons est de créer un script avec un fichier de verrouillage et de faire vérifier ce fichier de verrouillage avant de recommencer, afin qu'il puisse vérifier s'il est déjà en cours d'exécution et décider s'il s'exécute, s'il attend que l'autre fin ou s'il tue l'autre avant de courir.
Un fichier de verrouillage est simplement un fichier vide ou un fichier avec l'autre script PID
enregistré quelque part comme /var/run
ou /var/lock
.