Re: lug-bg: cron.pid
- Subject: Re: lug-bg: cron.pid
- From: Georgi Chorbadzhiyski <gf@xxxxxxxxxxx>
- Date: Thu, 16 Feb 2006 22:40:53 +0200
- Delivered-to: lug-bg-list@xxxxxxxxxxxxxxxxxx
- Delivered-to: lug-bg@xxxxxxxxxxxxxxxxxx
Georgi Hristozov wrote:
Здравейте! На машината си имам Slackware-current и се опитах да сложа
пакета за мониторинг на услуги Monit. Всичко си работеше на 6 докато на
пробвах да го конфигурирам да наблюдава crond. За това ми трябва
/var/run/cron.pid, който е стандартен за crond. Да, но този файл го няма
никъде из системата, а ми трябва за да може да се разбере дали работи
процеса. Някой има ли си идея как мога да накарам crond да си прави
собствен pid файл? Ако ми е само за да разбера PID-а на процеса, няма
проблем да ползвам нещо такова (е, малко по - сложно :) ):
pidof crond > /var/run/cron.pid
Но това не е пълноценно решение за мониторинг. Пакета, който ползвам е
dcron. Благодаря предварително!
От пет години ползвам crond да следи дали монит не е спрял :) А иначе ползвам
Dillon's cron от 97-ма и досега никога не е спирал или умирал. Вярно,
че не пише pid файл, но пък никога не се е налагало да го пускам защото
е умрял. И аз когато започнах да пускам монит ме беше прихванало всичко
да следя, но след време ми мина и сега следя само наистина важните ми
услуги (sshd, и няколко други демона...). С други думи, ако чак толкова
държиш да следиш crond с монит, направи си един rc файл от сорта на:
/etc/rc.d/rc.crond
#!/bin/sh
crond_start() {
if [ -x /usr/sbin/crond ]; then
if [ "$(/sbin/pidof crond)" = "" ]; then
echo "Starting crond: /usr/sbin/crond"
/usr/sbin/crond -l10 >>/var/log/cron 2>&1
/sbin/pidof crond > /var/run/crond.pid
else
echo "crond is already running."
/sbin/pidof crond > /var/run/crond.pid
fi
fi
}
# Stop crond:
crond_stop() {
killall -v crond
}
# Restart crond:
crond_restart() {
crond_stop
sleep 1
crond_start
}
case "$1" in
'start')
crond_start
;;
'stop')
crond_stop
;;
'restart')
crond_restart
;;
*)
echo "usage $0 start|stop|restart"
esac
и си го следи с monit:
check crond with pidfile /var/run/crond.pid
start = "/etc/rc.d/rc.crond start"
stop = "/etc/rc.d/rc.crond stop"
checksum /usr/sbin/crond
timeout(3,6)
alert monit@xxxxxxxxxxx { restart, timeout }
alert root@xxxxxxxxxxx on { checksum }
--
Georgi Chorbadzhiyski
http://georgi.unixsol.org/
|