Рубрики
boot \ grub \ grub2 \ init \ systemd cpu \ mem \ disk \ usage \ daemon \ процессы

sysv \ init.d \ свой демон для Linux

Ссылки:


https://github.com/ksemaev/manuals/blob/master/Simple%20daemon%20on%20Linux.md

Пример скрипта checker.sh:

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

Превращаем checker.sh в исполняемый файл и проверяем работу:


chmod u+x /opt/checker.sh
touch /var/log/checker
/opt/checker.sh
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