Поскольку я не получил ответов, я пришел к выводу, что, к сожалению, monit
сообщество не пользуется хорошей поддержкой и, возможно, не так уж много использовал.
Я придумал следующий скрипт bash, который служит моей цели:
#!/bin/bash while : do if ps -C python3 &> /dev/null then : else sudo systemctl poweroff fi sleep 60 done
Вот :
неоперация, которая возвращает истину,
while : do ... done
бесконечный цикл, python3
это программа, я мониторинга, ps -C python3
является команда, которая возвращает истину, если python3
работает (возможно, с любыми параметрами) и ложь в противном случае, &> /dev/null
отбрасывает вывод этой команды ( в противном случае он печатается каждую минуту в терминале), sudo systemctl poweroff
является команда, которая выключает мой компьютер, sleep 60
переводит скрипт в спящий режим на 1 минуту.
Я поместил этот код в файл, назвал его monitor
, сделал его исполняемым и запустил следующим образом:
./monitor & disown
Здесь &
запускается скрипт в фоновом режиме и disown
позволяет скрипту продолжать работу даже после закрытия терминала, с которого я его запустил.