NAME

watchmen - watch daemons and restart

SYNOPSIS

watchmen.pl [--configkey=configvalue] [-svcname__svckey=svcvalue] [command[=param]] ...
where command:
check[=svc] stop[=svc] restart[=svc] list avail help

EXAMPLES

# check and restart default services
watchmen.pl

#list of enabled services
watchmen.pl list

#list of available services
watchmen.pl avail

# full log
watchmen.pl --log_all

# reatart apache if more than 5 httpd proc, dont check sshd, load custom config
watchmen.pl -apache__max_proc=5 -sshd__enable=0 --config=/path/to/my/config

#check only 2 services with log
watchmen.pl check=named check=mysql --log_all 

# stop all EXCEPT sshd
watchmen.pl stop

INSTALL

recommended libs: LWP, URI
freebsd: cd /usr/ports/www/p5-libwww && make install clean
or 
perl -MCPAN -e "install LWP, URI"


cp watchmen.pl /usr/local/bin/watchmen ; cp watchmen.conf.dist /usr/local/etc/watchmen.conf
edit /usr/local/etc/watchmen.conf

run watchmen twice. second run must be quiet (all ok) if not - edit config

add to crontab:
echo "*       *       *       *       *       root    /usr/local/bin/watchmen" >> /etc/crontab

CONFIGURE

by default some of default services enabled

read [and edit] watchmen.conf

you can configure services from /etc/rc.conf[.local] file[s]:
for config string  $svc{service}{key} = 'value'; write to rc.conf:
service_key="value"
example:
apache22_http="81" 
# or define new service, with one of correct keys: process tcp udp http https :
nginx_enable="YES"
nginx_process="nginx"
nginx_http="8001"
nginx_http_check="<html"

TODO

self pid & check
/tmp/socketfile check
mail errors
various handlers
rsync --daemon
more default ports [tested!]
?.pid usage?

COPYRIGHT

watchmen Copyright (C) 2008-2009 Oleg Alexeenkov proler@gmail.com

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.