The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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/>.