Пишем своего демона для Linux
- Создаем по пути /opt/checker.sh скрипт с содержимым:
#!/bin/bash
while true
_ do_
LIMIT=0.02
LAST="$(uptime | tail -c 5)"
if (( $(echo "$LAST >= $LIMIT" | bc -l) )) ; then
_ echo "ALERT at $(date)" >> /var/log/checker_
fi
sleep 10
done
- Превращаем его в исполняемый файл и проверяем работу:
chmod u+x /opt/checker.sh
/opt/checker.sh
touch /var/log/checker
tail /var/log/checker
- Пишу в файл /etc/init.d/checker скрипт для демона:
#!/bin/bash
# chkconfig: 2345 20 80
# description: checking load
# Source function library.
. /etc/init.d/functions
_ _
case "$1" in
start)
_ echo "$(date) service checker started" >> /var/log/checker_
_ /opt/checker.sh &_
_ echo $!>/var/run/checker.pid_
_ ;;_
stop)
_ echo "$(date) service checker stopped" >> /var/log/checker_
_ kill cat /var/run/checker.pid
_
_ rm /var/run/checker.pid_
_ ;;_
restart)
_ $0 stop_
_ $0 start_
_ ;;_
status)
_ if [-e /var/run/checker.pid]; then_
_ echo checker is running, pid=cat /var/run/checker.pid
_
_ else_
_ echo checker is NOT running_
_ exit 1_
_ fi_
_ ;;_
*)
_ echo "Usage: $0 {start|stop|status|restart}"_
esac
_ _
exit 0
- Делаю скрипт исполняемым и добавляю в автозапуск и проверяю его работу:
sudo chmod u+x /etc/init.d/checker
chkconfig checker on
service checker start
service checker status