Škoda, že na této a dalších stránkách uvedených v google výsledky o tom, jak se vypořádat s hung cron joby, které nikdo nikdy nezmiňuje o pstree.
pstree
Podívejte se pod cronovou část stromu
Myslím, že pokud je kolem shell-script wrapper, měl by cronjob vypršet, pokud běží libovolně dostatečně dlouhou dobu. Obal by měl odeslat SIGHUP nebo SIGALARM, když vyprší časový limit od doby, kdy je cronjob vyvolán. Něco jako toto:
50 * * * * /usr/bin/my_cron_wrapper_timeout -t 1 /usr/bin/my_command_cron_job_to_run
Tento cron_wrapper_timeout by měl v zásadě odeslat signál časového limitu, jakmile uplyne možnost -t přepínače 1 hodina, a poté by měl odeslat kill -HUP
signál do cronjob a pak se ujistěte, že proces sklidíte také a poté se ukončíte/zabijete.
Případně by měl být kód napsán v samotném cronjobu, aby zvládl vypršení časového limitu signálu ALARM a zajistilo se, že se vyčistí dříve, než jemně zemře.
UPRAVIT
Přesně tohle jsem měl na mysli:hlídací pes na http://chihungchan.blogspot.com/2011/03/no-more-hanging-jobs-in-cron.html
Měli byste zastavit proces, který spustil crontab.
#kill -HUP PID (PID: Process ID is the process running)
Chcete-li zobrazit vztah PID k běžícím procesům (a další informace), použijte top
změňte pořadí sloupců pomocí kláves <
a >
Zkuste také ps -ax|grep [your_process_file]
který uvádí spuštěné procesy filtrované podle vámi zvoleného názvu
-HUP =Zavěsit