[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [monit] Re: File check with execution of a script

From: Martin Pala
Subject: Re: [monit] Re: File check with execution of a script
Date: Sat, 27 Sep 2008 18:26:46 +0200


when the service is to be restarted and depends on some other service, monit tries to make sure that the parent service is running. The problem is, that monit doesn't use it's own parent service check result, but tries to verify that the parent service is OK directly during the restart ... and this "real-time" check is very limited:

1.) if the parent service is process, it checks that the process is running (independent of process service check result) ... if it's not running, monit tries to start it before the child service is started and then starts the child service. If the parent process is running already, monit just tries to start he child service directly.

2.) if the parent service is any other type (file, directory, filesystem, ...) then monit doesn't verify whether it is running or not and just calls the start method of the parent service (which may cascade if the dependency chain is longer as in your case).

In your case there is dependency chain of three file services defined as MNT -> MNTDEP -> MNTDEPDEP, whereas MNTDEPDEP+MNTDEP (grandparent + parent) exists, MNT (child) doesn't exist.

The monit verbose mode (-v option) shows the actions sequence:

bash# monit -vIc ../monit_files validate
'MNTDEPDEP' file existence check succeeded
'MNTDEPDEP' is a regular file
'MNTDEP' file existence check succeeded
'MNTDEP' is a regular file
'MNT' file doesn't exist
'MNT' trying to restart
Monitoring disabled -- service MNT
'MNT' stop: /etc/monit/
'MNTDEPDEP' start: /etc/monit/
'MNTDEP' start: /etc/monit/
'MNT' start: /etc/monit/
Monitoring enabled -- service MNT

=> the behavior is given by current monit limitation. We plan to improve the dependency behavior and use the result of the full service check in the action chain, which will solve your problem.

The workaround could be to modify your scripts this way ... for example

if test -f /etc/monit/monit_dep.txt; then exit 0; fi

case $1 in
            touch /etc/monit/monit_dep.txt
            echo "asdfasdfasdfasdf" > /etc/monit/monit_dep.txt
            echo "monit start" >> /etc/monit/hier.txt
            echo "monit stop" >> /etc/monit/hier.txt


On Sep 25, 2008, at 4:00 PM, Julian Thomé wrote:

Sorry, i made an error in the last email

the files monit_dep_dep.txt and monit_dep.txt exist and the file monit.txt doesnt exist.

Julian Thomé

Telefonate ohne weitere Kosten vom PC zum PC: http://

To unsubscribe:

reply via email to

[Prev in Thread] Current Thread [Next in Thread]