Я получаю синтаксические ошибки, когда пытаюсь проверить статус выхода сценария bash с помощью «программы проверки» monit. Если я запускаю скрипт bash вручную, он не выдает ошибку. Но если я перезагружу monit с моей программой проверки monit в конфигурации, monit выдаст мне ошибки.
Вот мой текущий файл monit .conf --
check program myscript with path "/etc/monit.d/script_to_run.sh"
if status != 0 then alert
Если я изменю его на это, чтобы убедиться, что monit использует bash для анализа файла...
check program myscript with path "/usr/bash /etc/monit.d/script_to_run.sh"
if status != 0 then alert
Затем я получаю эту ошибку
Warning: Program does not exist: '"/bin/bash /etc/monit.d/script_to_run.sh"'
Даже тестовый сценарий приводит к ошибкам. Если у меня есть это в script_to_run.sh:
#!/bin/bash
exit 0
Монит будет жаловаться
Error: syntax error 'exit'
Если у меня есть это в script_to_run.sh:
#!/bin/bash
echo "hello"
Монит будет жаловаться
Error: syntax error 'echo'
Для справки: у меня есть monit 5.4, я следовал примеру «проверить программу» в документе man monit, и я могу настроить/использовать monit «проверить процесс…» на том же сервере.