Modul systemu wylacza sie lub zawiesza
(→Zawartość skryptu) |
|||
Linia 9: | Linia 9: | ||
===Zawartość skryptu=== | ===Zawartość skryptu=== | ||
− | < | + | <source lang="bash">#!/bin/bash |
DZIEN=`date +%c` | DZIEN=`date +%c` | ||
Linia 26: | Linia 26: | ||
WYNIK=`systemctl status $MODUL | grep running` | WYNIK=`systemctl status $MODUL | grep running` | ||
done | done | ||
− | fi</ | + | fi</source> |
==Dodanie wpisu do crontab== | ==Dodanie wpisu do crontab== |
Wersja z 12:29, 18 paź 2013
Jeżeli jakiś moduł systemu np. net47d, net47socketd, net47redbackd itd. wyłącza się lub zawiesza w niekontrolowany sposób, można utworzyć skrypt bashowy i dodać wpis do crontaba, aby system automatycznie sprawdzał czy moduł działa i w razie problemów automatycznie go restartował.
Cały czas monitorujemy i debugujemy moduły w poszukiwaniu ewentualnych błędów i przyczyn zawieszania bądź też wyłączania. Jeżeli któryś moduł się zawiesi prosimy o maila na wsparcie@net47.pl z informacją, jaka operacja była akurat w systemie wykonywana przed zawieszeniem i który moduł się zawiesił. Pozwoli nam to na szybsze zlokalizowanie błędu, jego wyeliminowanie i w konsekwencji spowoduje stabilniejszą pracę systemu.
Utworzenie skryptu autorestart.sh
Należy utworzyć skrypt bashowy w katalogu /home/net47/cron-script o nazwie autorestart.sh.
Zadaniem skryptu jest sprawdzenie statusu modułu i w przypadku gdy moduł nie jest uruchomiony dodawany jest wpis do logu oraz wykonywany jest restart modułu.
Zawartość skryptu
<source lang="bash">#!/bin/bash
DZIEN=`date +%c` MODUL=$1
WYNIK=`systemctl status $MODUL | grep running` WYNIK2=`systemctl status $MODUL`
if [ "$WYNIK" == "" ] then
echo -e "==================================================\r"$DZIEN": INFO: Restart modułu \r"$WYNIK2 >> /var/log/net47/$MODUL.restart while [ "$WYNIK" == "" ] do
WYNIK=`systemctl reset-failed $MODUL` WYNIK=`systemctl restart $MODUL` WYNIK=`systemctl status $MODUL | grep running`
done
fi</source>
Dodanie wpisu do crontab
Jeżeli chcemy, aby co minutę był sprawdzany moduł net47d dodajemy wpis:
*/1 * * * * /home/net47/cron-script/autorestart.sh net47d
Jeżeli chcemy, aby co minutę był sprawdzany moduł net47socketd dodajemy wpis:
*/1 * * * * /home/net47/cron-script/autorestart.sh net47socketd
Do crontaba można dodać wpis dla każdego modułu systemu net47.