Skip to content

Latest commit

 

History

History
113 lines (57 loc) · 1.73 KB

Simple daemon on Linux.md

File metadata and controls

113 lines (57 loc) · 1.73 KB

Пишем своего демона для 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

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

chmod u+x /opt/checker.sh

/opt/checker.sh

touch /var/log/checker

tail /var/log/checker

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

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

sudo chmod u+x /etc/init.d/checker

chkconfig checker on

service checker start

service checker status