- 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>>