Error reading pid from file

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Error reading pid from file

Ron Eggler
Hi All,

I'm new here and also new to Monit.
I wrote a script that I would like to have invoked once an hour by monit.

I have added the following to my /etc/monit/monitrc:

cat /etc/monit/monitrc
set daemon 30
set logfile /var/log/monit.log
set idfile /var/lib/monit/id
set statefile /var/lib/monit/state
set eventqueue
       basedir /var/lib/monit/events # set the base directory where
events will be stored
       slots 100                     # optionally limit the queue size

check ping.sh
     with path "/path/to/ping.sh"
     every "44 * * * *"
     #if status != 0 then alert


and I got the following in /var/log/monit.log:

[UTC Sep 21 22:25:38] info     : Starting Monit 5.16 daemon
[UTC Sep 21 22:25:38] info     : '056e2c2' Monit 5.16 started
[UTC Sep 21 22:44:09] error    : Error reading pid from file
'/path/to/ping.sh'
[UTC Sep 21 22:44:09] error    : 'ping.sh' process is not running
[UTC Sep 21 22:44:09] info     : 'ping.sh' trying to restart

while:

ls -l /path/to/ping.sh
-rwxrwxr-x 1 root root 1045 Sep 21 20:08 /path/to/ping.sh

and inside the script, the pid is stored in /var/run/ping.pid:

#!/bin/bash
pidfile="/var/run/ping.pid"
# Get the pid of the currently running script
ps ax | grep $0 | grep $SHELL | awk '{print $1}'>$pidfile


the pid file is deleted on the bottom of the script with:

rm $pidfile


why is there an error: "Error reading pid from file '/path/to/ping.sh'"?


Thank you, Ron


Reply | Threaded
Open this post in threaded view
|

Re: Error reading pid from file

Guillaume François
Hello,

The correct syntax is "check program" (https://mmonit.com/monit/documentation/monit.html#Program)
Also it is not recommended to specify an unique value in the cron expression for the minute field.
In your case, best is to trigger the check every 120 cycles (1 hours -> 60 minutes -> 1 cycle every 30 sec -> every 120 cycles)

It summarize to:

check program ping.sh with path "/path/to/ping.sh"
     every 120 cycles
     if status != 0 then alert
 

Regards.


Le mar. 22 sept. 2020 à 01:06, Ron Eggler <[hidden email]> a écrit :
Hi All,

I'm new here and also new to Monit.
I wrote a script that I would like to have invoked once an hour by monit.

I have added the following to my /etc/monit/monitrc:

cat /etc/monit/monitrc
set daemon 30
set logfile /var/log/monit.log
set idfile /var/lib/monit/id
set statefile /var/lib/monit/state
set eventqueue
       basedir /var/lib/monit/events # set the base directory where
events will be stored
       slots 100                     # optionally limit the queue size

check ping.sh
     with path "/path/to/ping.sh"
     every "44 * * * *"
     #if status != 0 then alert


and I got the following in /var/log/monit.log:

[UTC Sep 21 22:25:38] info     : Starting Monit 5.16 daemon
[UTC Sep 21 22:25:38] info     : '056e2c2' Monit 5.16 started
[UTC Sep 21 22:44:09] error    : Error reading pid from file
'/path/to/ping.sh'
[UTC Sep 21 22:44:09] error    : 'ping.sh' process is not running
[UTC Sep 21 22:44:09] info     : 'ping.sh' trying to restart

while:

ls -l /path/to/ping.sh
-rwxrwxr-x 1 root root 1045 Sep 21 20:08 /path/to/ping.sh

and inside the script, the pid is stored in /var/run/ping.pid:

#!/bin/bash
pidfile="/var/run/ping.pid"
# Get the pid of the currently running script
ps ax | grep $0 | grep $SHELL | awk '{print $1}'>$pidfile


the pid file is deleted on the bottom of the script with:

rm $pidfile


why is there an error: "Error reading pid from file '/path/to/ping.sh'"?


Thank you, Ron




--
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/IT d(+) s++:- a C++$ ULC(+)>+++$ !P--- L+>$ !E---? W+++$ !N* !o-- K--? w(+) !O---? !M- !V--? PS+? !PE Y+ PGP++>+++ !t-- !5 !X- R(+)>++* tv-? b(-) DI !D- G(+)>+ e+++ h--() r->$ y?*
------END GEEK CODE BLOCK------
Reply | Threaded
Open this post in threaded view
|

Re: Error reading pid from file

Ron Eggler


On 9/22/20 3:26 AM, Guillaume François wrote:
Hello,

The correct syntax is "check program" (https://mmonit.com/monit/documentation/monit.html#Program)
Also it is not recommended to specify an unique value in the cron expression for the minute field.
In your case, best is to trigger the check every 120 cycles (1 hours -> 60 minutes -> 1 cycle every 30 sec -> every 120 cycles)

It summarize to:

check program ping.sh with path "/path/to/ping.sh"
     every 120 cycles
     if status != 0 then alert
 

Regards.

Yes, Thanks!




Le mar. 22 sept. 2020 à 01:06, Ron Eggler <[hidden email]> a écrit :
Hi All,

I'm new here and also new to Monit.
I wrote a script that I would like to have invoked once an hour by monit.

I have added the following to my /etc/monit/monitrc:

cat /etc/monit/monitrc
set daemon 30
set logfile /var/log/monit.log
set idfile /var/lib/monit/id
set statefile /var/lib/monit/state
set eventqueue
       basedir /var/lib/monit/events # set the base directory where
events will be stored
       slots 100                     # optionally limit the queue size

check ping.sh
     with path "/path/to/ping.sh"
     every "44 * * * *"
     #if status != 0 then alert


and I got the following in /var/log/monit.log:

[UTC Sep 21 22:25:38] info     : Starting Monit 5.16 daemon
[UTC Sep 21 22:25:38] info     : '056e2c2' Monit 5.16 started
[UTC Sep 21 22:44:09] error    : Error reading pid from file
'/path/to/ping.sh'
[UTC Sep 21 22:44:09] error    : 'ping.sh' process is not running
[UTC Sep 21 22:44:09] info     : 'ping.sh' trying to restart

while:

ls -l /path/to/ping.sh
-rwxrwxr-x 1 root root 1045 Sep 21 20:08 /path/to/ping.sh

and inside the script, the pid is stored in /var/run/ping.pid:

#!/bin/bash
pidfile="/var/run/ping.pid"
# Get the pid of the currently running script
ps ax | grep $0 | grep $SHELL | awk '{print $1}'>$pidfile


the pid file is deleted on the bottom of the script with:

rm $pidfile


why is there an error: "Error reading pid from file '/path/to/ping.sh'"?


Thank you, Ron




--
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/IT d(+) s++:- a C++$ ULC(+)>+++$ !P--- L+>$ !E---? W+++$ !N* !o-- K--? w(+) !O---? !M- !V--? PS+? !PE Y+ PGP++>+++ !t-- !5 !X- R(+)>++* tv-? b(-) DI !D- G(+)>+ e+++ h--() r->$ y?*
------END GEEK CODE BLOCK------