Schade, dass auf dieser und anderen in Google aufgeführten Seiten zum Umgang mit hängenden Cron-Jobs niemand pstree erwähnt.
pstree
Sehen Sie unter Cron-Teil des Baums nach
Ich denke, wenn ein Shell-Skript-Wrapper in der Nähe ist, sollte der Cronjob ein Timeout haben, wenn er für längere, willkürlich lange Zeiträume ausgeführt wird. Der Wrapper sollte SIGHUP oder SIGALARM senden, wenn die Zeitüberschreitung ab dem Zeitraum eintritt, in dem der Cronjob aufgerufen wird. Etwa so:
50 * * * * /usr/bin/my_cron_wrapper_timeout -t 1 /usr/bin/my_command_cron_job_to_run
Dieses cron_wrapper_timeout sollte grundsätzlich das Timeout-Signal senden, sobald -t switch option 1 Stunde verstrichen ist, und dann kill -HUP
senden signalisieren Sie dem Cronjob und stellen Sie dann sicher, dass Sie auch den Prozess ernten und sich dann selbst beenden/beenden.
Oder alternativ sollte der Code in den Cronjob selbst geschrieben werden, um die Zeitüberschreitung des ALARM-Signals zu handhaben und sicherzustellen, dass es bereinigt wird, bevor es sanft stirbt.
BEARBEITEN
Genau darauf habe ich mich bezogen:Watchdog unter http://chihungchan.blogspot.com/2011/03/no-more-hanging-jobs-in-cron.html
Sie sollten den Prozess stoppen, den Crontab gestartet hat.
#kill -HUP PID (PID: Process ID is the process running)
Um eine Beziehung der PID zu den laufenden Prozessen (und weitere Informationen) zu sehen, verwenden Sie top
ändern Sie die Spaltenreihenfolge mit den Tasten <
und >
Versuchen Sie auch ps -ax|grep [your_process_file]
die die laufenden Prozesse auflistet, die nach dem von Ihnen gewählten Namen gefiltert sind
-HUP =Auflegen