Так недавно я заметил, что у меня есть процесс, который будет случайно разбиваться и станет зомби с PPID 1 (init). Мне сказали, что единственный способ исправить это - перезагрузить компьютер (или отправить SIGCHLD на init, который является .... dicey / бесполезным, из того, что я понимаю.)
По сути, что Я ищу, чтобы написать скрипт bash, который будет просто искать процесс зомби, а если есть, перезагрузите компьютер.
В настоящее время я использую этот скрипт для мониторинга самого процесса:
ps auxw | grep ethminer | grep -v grep > /dev/null
if [ $? != 0 ]
then
sudo reboot
fi
Теперь этот сценарий работает нормально, когда этминер либо работает, либо НЕ РАБОТАЕТ; он перезагрузит компьютер, если он не видит ethminer в таблице процессов, и ничего не делает, если он не видит его.
Тем не менее, (из-за моего откровенного понимания), поскольку код выхода, когда процесс становится зомбиком if [ $? != 0 ], не получает никакого ввода и, следовательно, ничего не делает.
В любом случае я могу исправить / изменить этот скрипт, чтобы он делал то, что я хочу сделать? Или я в порядке?
Спасибо!