Monit и gentoo rc-scripts

Monit и gentoo rc-scripts

2006-09-17 · 2 мин. для прочтения

При использовании monit для перезапуска rc-скриптов в gentoo использовал killall и опцию zap.
Нашёл это-же решение, но оформленное красивее.

Это файл /etc/monit.d/bin/kickservice

 1##!/bin/sh  
 2## kickservice by Eric Radman  
 3## Script used by monit to kill off and restart daemons  
 4## /etc/monit.d/bin/kickservice  
 5   
 6function stop ()  
 7{  
 8     /etc/init.d/$1 pause  
 9     /etc/init.d/$1 zap  
10     if [ "$2" == "kill" ]  
11         then  
12         /bin/killall $3  
13     fi  
14}  
15   
16function start ()  
17{  
18     /etc/init.d/$1 zap  
19     /etc/init.d/$1 start  
20}  
21   
22case "$1" in  
23  start)  
24     start $2 $3 $4  
25     ;;  
26  stop)  
27     stop $2 $3 $4  
28     ;;  
29  *)  
30     echo "Usage: kickservice [start|stop] [service] kill [daemon]"  
31     ;;  
32 esac  

Проблема возникла из-за того, что при установке baselayout-1.12.x перестал нормально работать pppd (при подключении через pptp к VPN-серверу провайдера). Очень часто соединение не устанавливается (вина, думаю, провайдерского сервера). По идее после этого он должен перезапускаться, а он просто ничего не делал. Решил снять проблему с помощью monit.
Убрал net.ppp0 из загрузки, и заставил monit мониторить ppp0.

Вот скрипт /etc/monit.d/ppp0

1check process pppd with pidfile /var/run/ppp0.pid  
2   start program = "/etc/monit.d/bin/kickservice start net.ppp0"  
3   stop program = "/etc/monit.d/bin/kickservice stop net.ppp0 kill pppd"  
4   if 5 restarts within 5 cycles then timeout

P. S. Хотел запостить скрипты, но не знаю как :(

Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.