当我尝试使用 monit 的“检查程序”检查 bash 脚本的退出状态时,出现语法错误。如果我手动运行 bash 脚本,它不会出错。但是,如果我在配置中使用我的 monit check 程序执行 monit reload,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 doc中的“检查程序”示例,并且能够在同一台服务器上配置/使用monit“检查过程...”就好了。