wiki:python_systemd
Różnice
Różnice między wybraną wersją a wersją aktualną.
Poprzednia rewizja po obu stronachPoprzednia wersjaNowa wersja | Poprzednia wersjaNowa wersjaNastępna rewizja po obu stronach | ||
wiki:python_systemd [2020/03/03 18:52] – lukasz | wiki:python_systemd [2021/12/02 08:55] – lukasz | ||
---|---|---|---|
Linia 1: | Linia 1: | ||
- | Pliki service dla aplikacji | + | Pliki aplikacji |
- | + | ||
- | Virtualenv został utworzony | + | |
- | + | ||
- | < | + | |
- | mkdir -p / | + | |
- | cd / | + | |
- | python3 -m venv . | + | |
- | source bin/ | + | |
- | pip install apache-airflow | + | |
- | pip freeze | + | |
- | export AIRFLOW_HOME=/ | + | |
- | airflow initdb | + | |
- | </ | + | |
- | + | ||
- | Użytkownik airflow potrzebuje: | + | |
- | * odczytywać katalog / | + | |
- | * zapisywać w katalogu / | + | |
- | * uruchamiać pliki z / | + | |
- | + | ||
- | / | + | |
< | < | ||
[Unit] | [Unit] | ||
- | Description=Airflow Webserver | + | Description=Notebook tkinter |
[Service] | [Service] | ||
- | # Aplikacja dziala na uzytkowniku | + | # Aplikacja dziala na uzytkowniku |
- | User=airflow | + | User=book |
# Przekierowanie komunikatow aplikacji bezposrednio do journald. | # Przekierowanie komunikatow aplikacji bezposrednio do journald. | ||
Linia 35: | Linia 14: | ||
# Ustawienie pythonowego virtualenv. | # Ustawienie pythonowego virtualenv. | ||
- | Environment=VIRTUALENV=/ | + | Environment=VIRTUALENV=/ |
Environment=PYTHONPATH=$VIRTUALENV/ | Environment=PYTHONPATH=$VIRTUALENV/ | ||
# PATH nie rozumie zmiennych, wiec trzeba podac pelne sciezki. | # PATH nie rozumie zmiennych, wiec trzeba podac pelne sciezki. | ||
- | Environment=PATH=/ | + | Environment=PATH=/ |
- | + | ||
- | # Roboczy katalog airflow. | + | |
- | Environment=AIRFLOW_HOME=$VIRTUALENV/ | + | |
# To musi byc pelna sciezka, bez uzywania zmiennych. | # To musi byc pelna sciezka, bez uzywania zmiennych. | ||
- | WorkingDirectory=/ | + | WorkingDirectory=/ |
# Start aplikacji (musi zawierac pelna sciezke). | # Start aplikacji (musi zawierac pelna sciezke). | ||
- | ExecStart=/data/airflow/app/bin/airflow webserver | + | ExecStart=/home/lukasz/magazyn/ |
- | # Automatyczny restart aplikacji po awarii z opoznieniem | + | # Automatyczny restart aplikacji po awarii z opoznieniem |
# aby uniknac obciazenia CPU w razie nieudanych uruchomien. | # aby uniknac obciazenia CPU w razie nieudanych uruchomien. | ||
Restart=always | Restart=always | ||
- | RestartSec=10 | + | RestartSec=20 |
# Powiadomienie systemd o uruchomieniu aplkacji. | # Powiadomienie systemd o uruchomieniu aplkacji. | ||
Type=simple | Type=simple | ||
- | # Plik z numerem ID procesu. | + | # Plir z numerem ID procesu. |
- | PIDFile=$AIRFLOW_HOME/airflow-webserver.pid | + | PIDFile=/var/run/book-tkinter.pid |
- | + | ||
- | [Install] | + | |
- | + | ||
- | # Autostart aplikacji. | + | |
- | WantedBy=default.target | + | |
- | After=netfork.target | + | |
- | </code> | + | |
- | + | ||
- | + | ||
- | /etc/ | + | |
- | + | ||
- | < | + | |
- | [Unit] | + | |
- | Description=Airflow Scheduler | + | |
- | + | ||
- | + | ||
- | [Service] | + | |
- | + | ||
- | # Aplikacja dziala na uzytkowniku airflow. | + | |
- | User=airflow | + | |
- | + | ||
- | # Przekierowanie komunikatow aplikacji bezposrednio do journald. | + | |
- | Environment=PYTHONUNBUFFERED=1 | + | |
- | + | ||
- | # Ustawienie pythonowego virtualenv. | + | |
- | Environment=VIRTUALENV=/ | + | |
- | Environment=PYTHONPATH=$VIRTUALENV/ | + | |
- | + | ||
- | # PATH nie rozumie zmiennych, wiec trzeba podac pelne sciezki. | + | |
- | Environment=PATH=/ | + | |
- | + | ||
- | # Roboczy katalog airflow. | + | |
- | Environment=AIRFLOW_HOME=$VIRTUALENV/ | + | |
- | + | ||
- | # To musi byc pelna sciezka, bez uzywania zmiennych. | + | |
- | WorkingDirectory=/ | + | |
- | + | ||
- | # Start aplikacji (musi zawierac pelna sciezke). | + | |
- | ExecStart=/ | + | |
- | + | ||
- | # Automatyczny restart aplikacji po awarii z opoznieniem 10 sekund, | + | |
- | # aby uniknac obciazenia CPU w razie nieudanych uruchomien. | + | |
- | Restart=always | + | |
- | RestartSec=10 | + | |
- | + | ||
- | # Powiadomienie systemd o uruchomieniu aplkacji. | + | |
- | Type=simple | + | |
[Install] | [Install] | ||
Linia 112: | Linia 41: | ||
# Autostart aplikacji. | # Autostart aplikacji. | ||
WantedBy=default.target | WantedBy=default.target | ||
- | After=netfork.target, | ||
- | Wants=airflow-webserver.service | ||
</ | </ | ||
+ | Następny krok to [[wiki: |
wiki/python_systemd.txt · ostatnio zmienione: 2024/02/07 20:58 przez lukasz