Ссылки:
1 2 |
https://www.youtube.com/watch?v=gnC0mF0HCqM&list=PLmxB7JSpraifsRUrtq2Y-il5NCLc3vKho&index=35 https://github.com/ksemaev/manuals/blob/master/Simple%20daemon%20on%20Linux.md |
Пример скрипта checker.sh:
1 2 3 4 5 6 7 8 9 10 11 |
Создаем по пути /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 в исполняемый файл и проверяем работу:
1 2 3 4 |
chmod u+x /opt/checker.sh touch /var/log/checker /opt/checker.sh tail /var/log/checker |
Создаем /etc/init.d/checker скрипт для демона:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#!/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 |
Делаем скрипт исполняемым и добавляю в автозапуск и проверяю его работу:
1 2 3 4 |
sudo chmod u+x /etc/init.d/checker chkconfig checker on service checker start service checker status |