質問

I am getting syntax errors when I try to check the exit status of a bash script using monit's "check program". If I run the bash script manually, it doesn't error. But if I do monit reload with my monit check program in the config, monit gives me errors.

Here's my current monit .conf file --

check program myscript with path "/etc/monit.d/script_to_run.sh"
  if status != 0 then alert

If I change it to this to make sure monit uses bash to parse the file...

check program myscript with path "/usr/bash /etc/monit.d/script_to_run.sh"
  if status != 0 then alert

Then I get this error

Warning: Program does not exist: '"/bin/bash /etc/monit.d/script_to_run.sh"'

Even a test script results in errors -- If I have this in script_to_run.sh:

#!/bin/bash
exit 0

Monit will complain

Error: syntax error 'exit'

If I have this in script_to_run.sh:

#!/bin/bash
echo "hello"

Monit will complain

Error: syntax error 'echo'

For reference -- I have monit 5.4, have followed the "check program" example in the man monit doc, and am able to configure/use monit "check process..." just fine on the same server.

役に立ちましたか?

解決

ok, fixed. for future reference for anyone reading this -- never put .sh files in /etc/monit.d/

that was the problem. i moved the .sh file to a different directory and everything is fine now.

他のヒント

I am using Amazon AMI on AWS cloud. Unfortunately, by default Amazon is shipping older version of Monit - 5.2.5

https://forums.aws.amazon.com/thread.jspa?threadID=215645

They suggest to install version of monit otherwise. Amazon forum gave this workaround:

sudo yum install -y https://kojipkgs.fedoraproject.org//packages/monit/5.14/1.el6/x86_64/monit-5.14-1.el6.x86_64.rpm
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top