Respuestas:
Prueba el timeout
comando. Por ejemplo:
0 * * * * timeout -2 3540 /path/to/your_command.sh
enviará un SIGINT a su comando si no se ha completado en 59 minutos.
usage: timeout [-signal] time command...
timeout: /usr/bin/timeout
No La forma en que lo hacemos es crear un script con un archivo de bloqueo y hacer que el script compruebe ese archivo de bloqueo antes de comenzar a ejecutar nuevamente, para que pueda verificar si ya se está ejecutando y decidir si se ejecuta, si espera a que el otro lo haga. final o si mata al otro antes de correr.
Un archivo de bloqueo es solo un archivo vacío o un archivo con el otro script PID
guardado en algún lugar como /var/run
o /var/lock
.