monitord
— monitor
system services for accidental termination
monitord |
[-f file
-t interval] |
monitord
is a simple to use system service
that allows one to easily monitor other system services for accidental
termination. If they terminate because of some internal bug or illegitimate
action, such as a DoS attack, they are restarted with the given username and
parameters specified in monitord.conf.
The two command line options are as follows:
-f
file
- A custom configuration file may be used instead of
the default one:
/usr/local/etc/monitord.conf.
-t
interval
- The time interval in seconds at which to check the
system processes, which are configured in
monitord.conf. The default
interval is 10 seconds.
The configuration file for monitord
,
/usr/local/etc/monitord.conf, has a simple format.
It is divided into two parts. The first part contains general configuration
informaion, which for now consists simply of the admin's email and your
email server. The second part consists of multiple configuration lines for
each service to be monitored. In this second part, the first column contains
the user under which the given
service on that line will be run if it needs to be
restarted. The group to which the user belongs will be grabbed from the
password database.
The second column consists of the options to
be used in monitoring that particular service. Currently, three options are
supported:
- auto
- Indicates that the service should be automatically restarted if it's found
down. This is also the default behaviour when neither
auto nor noauto are
specified.
- noauto
- Indicates that the service should not be automatically restarted if it's
down.
- alert
- Indicates that if this service is found down, the administrator is
automatically notified via email, as specified in the first part of the
configuration file. Also, once a service is restarted, this option will
prompt
monitord
to notify the administrator that
it was successfully restarted.
The third column is the delay that will
follow the startup of that particular service. Some services take a while to
start up, especially if they need to perform preperatory tasks in a wrapper
script, so to keep monitord
from attempting to
restart a service after it's already begun its startup proceedure but before
it appears in the process table the specified delay
keeps monitord
from checking that service for the
specified time in seconds.
The fourth and fifth columns are the service
being monitored and script used to start the service,
respectively. Only the script column includes the full path. If no special
wrapper script is being used but instead the service's binary is invoked
directly simply include the path to the service in the script column. The
service field should always contain the name of the binary being executed.
See examples in monitord.conf.
The last column, which is optional, may contain any
parameters that should be passed to the
script (or binary as the case may be). For instance,
the following line would configure monitord
to watch
for
sendmail(8)
and restart it, in case of termination, with the user
root and group wheel (which it
would grab from the password database), and then notify the administrator.
monitord
will wait 30 seconds after attempting to
restart sendmail before it checks to see if sendmail is up and running:
root auto,alert 30 sendmail /usr/sbin/sendmail -bd -q60m
Here are a few more example service entries:
root auto,alert 30 syslogd /usr/sbin/inetd -wW
root auto,alert 30 syslogd /usr/sbin/syslogd
www auto,alert 60 httpd /usr/local/etc/rc.d/apache.sh
This is version 0.4.1.
When using a time interval that is smaller
than 5 seconds, an increasingly larger amount of CPU time will be used by
the process. It is recommended that one keep the
interval equal to or above 5 seconds. The default of
10 seconds may be changed in config.h before compile
time.
- /usr/local/etc/monitord.conf
- configuration file
When restarting a service which it is
monitoring, monitord
will notify
syslogd(8)
of the event.
monitord
should be run as
root so that it can restart the services it is
monitoring with the correct username and group.
This manual page was written by W. M.
Shandruk ⟨walt@erudition.net⟩.