Cześć!
A więc kontynuujemy mój poprzedni wpis. Zatrzymaliśmy się na sytuacji gdzie mamy zainstalowaną naszą aplikację na virtualenvie.
Tak jak pisałem wcześniej – zarządzanie procesami jest bardzo istotnym elementem każdego kto chce pisać własne programy które mają działać non stop (a przynajmniej prawie non stop). Trzeba zorganizować sobie środowisko które będzie pozwalać na łatwe zatrzamynie i uruchamianie aplikacji jak i jej automatyczne restartowanie czy podnoszenie po „awarii”.
Takim środowiskiem jest supervisord.
Instalacja jest łatwa, wystarczy wykonać:
1 | pip install supervisor |
Warto mieć na uwadze:
1 | Supervisor requires Python 2.4 or later but does not work on any version of Python 3. |
i jeszcze to:
1 | DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6 |
No i jak już go zainstalowaliśmy to stwórzmy przykładowy plik konfiguracyjny:
1 | echo_supervisord_conf > /etc/supervisord.conf |
W samym pliku /etc/supervisord.conf jest wszystko opisane więc nie będę powielał wiedzy a sam dodam do tego pliku taki kawałek:
1 2 3 4 5 | [program:python_finacial] command=/opt/run_python_financial user=root stdout_logfile=/var/log/stdout_financial.log stderr_logfile=/var/log/stderr_financial.log |
Który mówi żeby uruchamiać plik /opt/run_python_financial z roota. Standardowe wyjście aplikacji przekierowywać do /var/log/stdout_financial.log a wyjście błędów do /var/log/stderr_financial.log.
Nasza aplikacja ma zaimplementowane logowanie bezpośrednio do pliku a nie na standardowe wyjście, więc supervisor zbyt dużo nie przekieruje ale takie linijki zawsze warto mieć.
Plik /opt/run_python_financial ma zawartość:
1 2 3 | #!/bin/sh source /opt/virtual_envs/bin/activate exec gold_digger |
No i skoro to już mamy to możemy go uruchomić, wpisując:
1 | supervisord |
Aby zarządzać procesami możesz uruchomić program supervisorctl i będzie tam lista aktywnych procesów. Taka konsola jest przydatna i potrzebna ale poza nią możemy mieć jeszcze dostęp przez przeglądarkę. Aby taką możliwość uruchomić należy w pliku konfiguracyjnym- /etc/supervisord.conf – w sekcji inet_http_server odkomentować wszystkie 3 ustawienia oraz ustawić hasło i login.
Poza tą zmianą należy dokonać jeszcze jednej – tym razem w sekcji supervisorctl należy odkomentować wszystko. Login i hasło powinny być takie same jak wyżej ustawione zostały.
Restart supervisor’a wskazany – możesz przez program service. Ewentualnie ubij w htopie i uruchom ponownie.
Następnie przez przeglądarkę wejdź pod adres
http://adres_gdzie_lezy_supervisor:9001/
a Twoim oczom ukaże się coś podobnego do:
No i to mógłby by być koniec wpisu ale dodam jeszcze jedno – kursy zatrzymują się na weekend – tzn kurs srebra, złota, palladu i platyny w weekend się nie zmieniają :P
A więc nie ma sensu żeby program wtedy pracował.
Dodamy więc do CRON’a zadanie – niech on mi gasi aplikację powiedzmy o 00:01 w sobotę i podnosi o tej samej godzinie w poniedziałek:
1 2 | 1 0 * * 1 /usr/bin/supervisorctl start python_finacial 1 0 * * 6 /usr/bin/supervisorctl stop python_finacial |
A więc teraz mogę z czystym sumieniem zakończyć część drugą z trzech.
W następnej części zrobimy coś z danymi które zbieramy – wyrysujemy w przeglądarce ładne wykresy ;)
Następna część już jest dostępna – KLIK.
Oj daaawnoo mnie tu nie było. Ale wakacje to był czas dużej liczby intensywnych wyjazdów i tak naprawdę, dopiero jakoś… Read More
Cześć! Zapraszam na krótkie podsumowanie kwietnia. Wyjazd do Niemiec A dokładniej pod granicę z Francją. Chrześnica miała pierwszą komunię. Po… Read More
Ostatnio tygodnie były tak bardzo wypełnione, że nie udało mi się napisać nawet krótkiego podsumowanie. Więc dziś zbiorczo podsumuję luty… Read More
Zapraszam na krótkie podsumowanie miesiąca. Książki W styczniu przeczytałem "Homo Deus: Historia jutra". Książka łudząco podoba do wcześniejszej książki tego… Read More
Cześć! Zapraszam na podsumowanie roku 2023. Książki Zacznijmy od książek. W tym roku cel 35 książek nie został osiągnięty. Niemniej… Read More
Zapraszam na krótkie podsumowanie miesiąca. Książki W grudniu skończyłem czytać Mein Kampf. Nudna książka. Ciekawsze fragmenty można by było streścić… Read More