Lástima que en esta y otras páginas enumeradas en los resultados de Google sobre cómo lidiar con trabajos cron colgados que nadie menciona pstree.
pstree
Mira debajo de la parte cron del árbol
Creo que si hay un envoltorio de script de shell, eso debería agotar el tiempo de espera del cronjob, si se está ejecutando durante períodos de tiempo lo suficientemente largos y arbitrarios. El contenedor debe enviar SIGHUP o SIGALARM cuando se agote el tiempo de espera desde el período en que se invocó el cronjob. Algo como esto:
50 * * * * /usr/bin/my_cron_wrapper_timeout -t 1 /usr/bin/my_command_cron_job_to_run
Este cron_wrapper_timeout básicamente debería enviar la señal de tiempo de espera una vez que pase la opción -t switch 1 hora y luego debería enviar kill -HUP
envíe una señal al cronjob y luego asegúrese de cosechar el proceso también y luego finalice / elimínese.
O alternativamente, el código debe escribirse en el cronjob mismo para manejar el tiempo de espera de la señal de ALARMA y asegurarse de que se limpie antes de que muera suavemente.
EDITAR
Esto es exactamente a lo que me refería:perro guardián en http://chihungchan.blogspot.com/2011/03/no-more-hanging-jobs-in-cron.html
Debe detener el proceso que crontab comenzó a ejecutar.
#kill -HUP PID (PID: Process ID is the process running)
Para ver una relación del PID con los procesos en ejecución (y más información) use top
comando, cambie el orden de las columnas con las teclas <
y >
Prueba también ps -ax|grep [your_process_file]
que enumera los procesos en ejecución filtrados por el nombre que elija
-HUP =Cuelga