monitor system services for accidental
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:
- A custom configuration file may be used
instead of the default one:
- 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
, 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
on that line will be run if it needs
to be restarted. The group to which the user belongs will be grabbed from the
The second column consists of the options
used in monitoring that particular service. Currently, three options are
- Indicates that the service should be automatically restarted if it's found
down. This is also the default behaviour when neither
noauto are specified.
- Indicates that the service should not be automatically restarted if it's
- 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
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
from attempting to
restart a service after it's already begun its startup proceedure but before
it appears in the process table the specified
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
that should be passed to the
(or binary as the case may be). For
instance, the following line would configure
to watch for
and restart it, in case of termination, with the user
(which it would grab from the password
database), and then notify the administrator.
will wait 30 seconds after
attempting to restart sendmail before it checks to see if sendmail is up and
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
equal to or above 5 seconds. The
default of 10 seconds may be changed in
before compile time.
- configuration file
When restarting a service
which it is
of the event.
should be run as
so that it can restart the services it
is monitoring with the correct username and group.
This manual page was written by W. M.
There are no known bugs.