Modul systemu wylacza sie lub zawiesza

Z Net47 2.0
Wersja Duri (dyskusja | edycje) z dnia 12:11, 18 paź 2013
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Skocz do: nawigacji, wyszukiwania

Jeżeli jakiś moduł systemu np. net47d, net47socketd, net47redbackd wyłącza się lub zawiesza w niekontrolowany sposób, można utworzyć skrypt bashowy i dodać do crontaba, aby 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 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

#!/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

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.

Osobiste
Przestrzenie nazw
Warianty
Działania
Nawigacja
Konfiguracja Systemu
Szablony
API
PostgreSQL
Narzędzia
MENU