Как написать скрипт, который проконтролирует себя на предмет зависания/долгого выполнения?
Надо написать надежный скрипт, который после запуска каким-либо образом проконтролирует сам себя на предмет зависания или слишком долгого выполнения.
Скрипты в основном пишу на Python, но есть и bash. Есть еще такие Python, которые внутри себя выполняются bash.
Как такое правильно сделать?
Например на bash: скрипт watchdog раз в минуту запускается по крону и проверяет в процессах (ps aux + grep) мониторимый скрипт. Если все ок, выходит . Если не находит, то запускает.
Если надо чтобы скрипт выполнялся не дольше определенного времени, можно запускаеть его через команду timeout в bash. Тогда timeout завершит исполнение скрипта по истечению указанного ему времени.
Как я понимаю, тут предполагается, что скрипт запускается через команду timeout, если таймаут наступил, то exit code = 124, ну собственно эхо об этом.
Я вот только не пойму значения case $?
Поясните, если не трудно.
$? - код завершения. С каким кодом завершилось выполнение вышенаписанного скрипта.
Дальше идет case. Это оператор выбора: www.opennet.ru/docs/RUS/bash_scripting_guide/x5210.html
Он обрабатывает $?.
Если $? равен 124, что означает что скрипт завершен timeout-ом, выводит сообщение "Unresponsive script".