monit-general
[Top][All Lists]
Advanced

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

Re: [monit] Monit fails to create PID file on restart


From: Tong Anh Quan
Subject: Re: [monit] Monit fails to create PID file on restart
Date: Fri, 9 Jul 2010 21:58:01 +0700

Hi Martin,

What suprising is: if I turn down the totalmem to 40 MB (example), monit can restart apache with pidfile normally:

[ICT Jul  9 21:31:32] error    : 'apache' total mem amount of 353728kB matches resource limit [total mem amount>40960kB]
[ICT Jul  9 21:32:32] error    : 'apache' total mem amount of 353728kB matches resource limit [total mem amount>40960kB]
[ICT Jul  9 21:32:32] info     : 'apache' trying to restart
[ICT Jul  9 21:32:32] info     : 'apache' stop: /etc/init.d/httpd
[ICT Jul  9 21:32:33] info     : 'apache' start: /etc/init.d/httpd
[ICT Jul  9 21:33:34] error    : 'apache' total mem amount of 58584kB matches resource limit [total mem amount>40960kB]
[ICT Jul  9 21:33:34] info     : 'apache' trying to restart
[ICT Jul  9 21:33:34] info     : 'apache' stop: /etc/init.d/httpd
[ICT Jul  9 21:33:36] info     : 'apache' start: /etc/init.d/httpd
[ICT Jul  9 21:34:36] error    : 'apache' total mem amount of 59292kB matches resource limit [total mem amount>40960kB]
[ICT Jul  9 21:34:36] info     : 'apache' trying to restart
[ICT Jul  9 21:34:36] info     : 'apache' stop: /etc/init.d/httpd
[ICT Jul  9 21:34:37] info     : 'apache' start: /etc/init.d/httpd
[ICT Jul  9 21:35:38] error    : 'apache' service restarted 3 times within 3 cycles(s) - unmonitor

Your above suggestion didn't help: I don't know what env variables I must check? Moreover, the apache.out only contains "Starting httpd [ OK ]".

On Thu, Jul 1, 2010 at 7:22 PM, Martin Pala <address@hidden> wrote:
Hi,

as mentioned, i suggest to check the environment variables.

You can catch the script output by modifying the monit configuration for apache this way:

  start program = "/bin/bash -c '/etc/init.d/httpd start > /tmp/apache.out 2>&1'"

... this will save the output and errors to /tmp/apache.out - it should provide more informations about why apache couldn't start via monit in given machine's environment.

Martin



On Jun 29, 2010, at 2:57 PM, Tong Anh Quan wrote:

Hi Martin,

The problem is, the next time when Apache reach the threshold, monit cannot restart it, the monit.log says continously:

[ICT Jun 29 18:03:57] error    : 'apache' process is not running
[ICT Jun 29 18:03:57] info     : 'apache' trying to restart
[ICT Jun 29 18:03:57] info     : 'apache' start: /etc/init.d/httpd
[ICT Jun 29 18:04:27] error    : 'apache' failed to start

and I... must manually restart Apache.

Do you have any suggestion?

On Thu, Jun 24, 2010 at 10:34 PM, Martin Pala <address@hidden> wrote:
If apache is running and pidfile missing, then the problem is in apache or its start script - not monit.

I have never get this situation when restart Apache from command line (service httpd restart).

 

As mentioned, for example ubuntu sets pidfile in apache.conf this way:
--8<--
PidFile ${APACHE_PID_FILE}
--8<--

The APACHE_PID_FILE environment variable is defined in /etc/apache2/envvars this way:
--8<--
export APACHE_PID_FILE=/var/run/apache2.pid
--8<--

... and the variable sourced from envvars file in /etc/init.d/apache2 this way:
PIDFILE=`. /etc/apache2/envvars ; echo $APACHE_PID_FILE`


You mentioned CentOS - it will have probably different apache configuration hierarchy, but you have the idea where to look. The problem could be environment variable (as mentioned monit purges environment variables so unless you use envvars-like file you may have problem) or apache configuration issue.



On Jun 24, 2010, at 5:10 PM, Tong Anh Quan wrote:

On Thu, Jun 24, 2010 at 9:48 PM, Martin Pala <address@hidden> wrote:
The pidof shows pid of all matching processes - in case of apache there is one master httpd process (parent) which spawns number of child processes to handle particular requests - if apache is stopping it may take a while before they handle all pending requests and stop.

I know, obviously.

 
Since the pidfile doesn't exist i suppose apache is not running on your machine and only some child processes remain active (stopping) ... their parent pid will be most probably "1" (their original parent exited). You can verify apache's status for example using 'apachectl status' and also by trying to connect to the http service which should fail.

What a pity, you're wrong. I checked it before posting:

# ps -ef | grep httpd
root     21422     1  0 12:49 ?        00:00:00 /usr/sbin/httpd
apache   21424 21422  0 12:49 ?        00:01:29 /usr/sbin/httpd
apache   21425 21422  0 12:49 ?        00:02:01 /usr/sbin/httpd
apache   21426 21422  0 12:49 ?        00:01:46 /usr/sbin/httpd
apache   21427 21422  0 12:49 ?        00:03:33 /usr/sbin/httpd
apache   21428 21422  0 12:49 ?        00:02:01 /usr/sbin/httpd
apache   21429 21422  0 12:49 ?        00:01:49 /usr/sbin/httpd
apache   21431 21422  0 12:49 ?        00:02:45 /usr/sbin/httpd
apache   21432 21422  0 12:49 ?        00:00:58 /usr/sbin/httpd
apache   21443 21422  0 12:50 ?        00:02:22 /usr/sbin/httpd
apache   21444 21422  0 12:50 ?        00:01:32 /usr/sbin/httpd
apache   21445 21422  0 12:50 ?        00:01:35 /usr/sbin/httpd

and I can connect to my web page normally.

If despite missing pidfile apache is running and serving requests, then you have some problem with apache's startup script.

Until now, I have no problem.
 

Note that monit runs the script in "sandbox" and purges environment variables when starting the script (for security reasons). If you apache's startup depends on some variable, you will need to modify the start script to include it (apache usually uses "envvars" file which is should contain variables required for apache).

I use the Apache's default config file and it works fine when restart from command line.







--
To unsubscribe:
http://lists.nongnu.org/mailman/listinfo/monit-general



--
--- Hạnh phúc là một ly Cafe và nhạc Trịnh ---
--
To unsubscribe:
http://lists.nongnu.org/mailman/listinfo/monit-general


--
To unsubscribe:
http://lists.nongnu.org/mailman/listinfo/monit-general


reply via email to

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