Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Monit errors when running "check program" for custom script

Tags:

monit

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.

like image 692
lemon lime pomelo Avatar asked Nov 24 '25 01:11

lemon lime pomelo


1 Answers

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.

like image 192
lemon lime pomelo Avatar answered Nov 27 '25 18:11

lemon lime pomelo



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!