Рубрики
cpu \ mem \ disk \ usage \ daemon \ процессы

Пишем своего демона для Linux

Пример:

1) Создаем по пути /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

2) Превращаем его в исполняемый файл и проверяем работу:

chmod u+x /opt/checker.sh
/opt/checker.sh
touch /var/log/checker
tail /var/log/checker

3) Пишу в файл /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

4) Делаю скрипт исполняемым и добавляю в автозапуск и проверяю его работу:

sudo chmod u+x /etc/init.d/checker
chkconfig checker on
service checker start
service checker status

Добавить комментарий