Podtrzymywanie procesów z użyciem narzędzia Supervisor
Podtrzymywanie procesów z użyciem narzędzia Supervisor
Ciągłość pracy aplikacji to bardzo istotna kwestia która pozwala świadczyć usługi na wysokim poziomie. Narzędzie Supervisor to rozwiązanie którego zadaniem jest monitoring podległych procesów w systemach z rodziny UNIX/Linux i w momencie kiedy jeden z nich przestanie działać uruchomienie go ponownie. Z tego artykułu dowiesz się w jaki sposób wykorzystać narzędzie Supervisor w praktyce do podtrzymywania procesu serwera poczty elektronicznej – Apache James. Zanim zaczniesz czytać ten wpis polecam zapoznać się z artykułem gdzie opisane jest w jaki sposób uruchomić swój własny serwer pocztowy – Apache James – https://javaleader.pl/2019/06/16/apache-james-wlasny-serwer-pocztowy/.
Instalacja:
sudo apt-get install supervisor
Edycja pliku supervisord.conf:
/etc/supervisor/supervisord.con
[program:apache-james] priority=1 autostart=true autorestart=true directory=../../james-server-app-3.1.0/bin/ command=sudo nohup ./run.sh & stderr_logfile= ../../supervisor_log/apache-james.log
- autostart – czy program ma być uruchomiony po tym jak Supervisor zostanie uruchomiony?,
- autorestart – czy program ma być uruchomiony ponownie kiedy się zakończy?,
- directory – wskazuje katalog w którym ma być wykonane polecenie zdefiniowane przez parametr command,
- command – polecenie do wykonania w katalogu – directory,
- stderr_logfile – wskazuje plik gdzie zapisywane są logi.
Uruchomienie narzędzia Supervisor:
sudo service supervisor restart
Weryfikacja poprawności działania:
- sprawdzamy czy proces poczty elektronicznej działa:
sudo lsof -n -i :PORT
- niszczymy proces:
kill -9 PID
sudo lsof -n -i :PORT
- sprawdzamy czy proces mimo jego zniszczenia został ponownie uruchomiony:
sudo lsof -n -i :PORT
w katalogu:
/var/log/supervisor
znajduje się plik z logami:
supervisord.log
Mimo tego, że proces został zniszczony narzędzie Supervisor prawidłowo uruchomiło ponownie proces. Od tej pory można być spokojnym o ciągłość pracy poczty elektronicznej!
Leave a comment