- changed status to resolved
Check process with if exist does not contain some data
Hello, I missed some data in the environment variables in the "if exist" check (I use monit 5.25.2).
check process sleep matching "sleep"
if exist then exec "/usr/local/etc/monit/scripts/env.sh"
else if succeeded then exec "/usr/local/etc/monit/scripts/env.sh"
The "monit status" show the right data.
Process 'sleep'
status Does exist
monitoring status Monitored
monitoring mode active
on reboot start
pid 44445
parent pid 1
uid 504
effective uid 504
gid 20
uptime 0m
threads 1
children 0
cpu 0.0%
cpu total 0.0%
memory 0.0% [520 kB]
memory total 0.0% [520 kB]
data collected Sat, 27 Oct 2018 21:22:59
I got the following variables for "does exist". Unfortunately some of the values does not contain some usefull data, but the description contain the pid value.
MONIT_HOST=MacBookPro.local
MONIT_PROCESS_PID=-1
MONIT_EVENT=Does exist
MONIT_PROCESS_MEMORY=0
MONIT_PROCESS_CPU_PERCENT=-1.0
MONIT_SERVICE=sleep
MONIT_PROCESS_CHILDREN=-1
MONIT_DESCRIPTION=process is running with pid 44445
MONIT_DATE=Sat, 27 Oct 2018 21:22:59
The "exists not" seems to fit, but contain to much values compared to "does not exist".
MONIT_HOST=MacBookPro.local
MONIT_PROCESS_PID=-1
MONIT_EVENT=Exists not
MONIT_PROCESS_MEMORY=0
MONIT_PROCESS_CPU_PERCENT=-1.0
MONIT_SERVICE=sleep
MONIT_PROCESS_CHILDREN=-1
MONIT_DESCRIPTION=process is not running
MONIT_DATE=Sat, 27 Oct 2018 21:24:59
Someone should have a look to "check process" handling, I think.
With regards, Lutz
Comments (2)
-
repo owner -
reporter Thanks for the fix. I add the changes to monit 5.25.2 to do some testing.
If the process is running, I get proper env varibales now.
#! MONIT_DATE=Wed, 30 Jan 2019 22:08:30 MONIT_DESCRIPTION=process is running with pid 10369 MONIT_EVENT=Does exist MONIT_HOST=MacBookPro.local MONIT_PROCESS_CHILDREN=0 MONIT_PROCESS_CPU_PERCENT=0.0 MONIT_PROCESS_MEMORY=520 MONIT_PROCESS_PID=10369 MONIT_SERVICE=sleep
And if the process is not available I got.
#! MONIT_DATE=Wed, 30 Jan 2019 22:10:30 MONIT_DESCRIPTION=process is not running MONIT_EVENT=Exists not MONIT_HOST=MacBookPro.local MONIT_PROCESS_MEMORY=0 MONIT_SERVICE=sleep
The env variable "MONIT_PROCESS_MEMORY" is not usefully for a not running process, but the env values content is proper now.
"monit status" show the right data, if the process is running.
#! Process 'sleep' status Does exist monitoring status Monitored monitoring mode active on reboot start pid 10369 parent pid 9951 uid 504 effective uid 504 gid 20 uptime 0m threads 1 children 0 cpu 0.0% cpu total 0.0% memory 0.0% [520 kB] memory total 0.0% [520 kB] data collected Wed, 30 Jan 2019 22:08:30
Or not running.
#! Process 'sleep' status OK monitoring status Monitored monitoring mode active on reboot start pid - parent pid - uid - effective uid - gid - uptime - threads - children - cpu - cpu total - memory - memory total - data collected Wed, 30 Jan 2019 22:14:30
Nice to see, thanks for all help, Lutz
- Log in to comment
Fixed: Issue
#790: check process: The exec action's environment contains invalid value for MONIT_PROCESS_* variables.→ <<cset e5f406fcadfd>>