Narzędzia użytkownika

Narzędzia witryny


wiki:python_systemd

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
Nowa wersjaNastępna rewizja po obu stronach
wiki:python_systemd [2020/11/17 10:09] lukaszwiki:python_systemd [2021/12/11 11:40] lukasz
Linia 1: Linia 1:
-Pliki service dla aplikacji Pythonowych zainstalowanych przez pip w virtualenvie, na przykładzie aplikacji Airflow, opartej na Flask. +Pliki aplikacji znajdują się w katalogu ///home/lukasz/magazyn/tkinter//, gdzie jest również utworzony virtualenv.
- +
-Virtualenv został utworzony w katalogu /data/airflow/app. Airflow ma prawa zapisu do katalogu /data/airflow/app/airflow_home, gdzie ma swój katalog roboczy. +
- +
-<code> +
-mkdir -p /data/airflow/app/airflow_home +
-cd /data/airflow/app +
-python3 -m venv . +
-source bin/activate +
-pip install apache-airflow +
-pip freeze +
-export AIRFLOW_HOME=/data/www/airflow/app/airflow_home +
-airflow initdb +
-</code> +
- +
-Użytkownik airflow potrzebuje: +
-  * odczytywać katalog /data/www/airflow/app/+
-  * zapisywać w katalogu /data/www/airflow/app/airflow_home/*, +
-  * uruchamiać pliki z /data/www/airflow/app/bin/*, z wyjątkiem plików pip*, które można zresztą usunąć. +
- +
-/etc/systemd/system/airflow-webserver.service +
  
 <code> <code>
 [Unit] [Unit]
-Description=Airflow Webserver +Description=Notebook tkinter
  
 [Service] [Service]
  
-# Aplikacja dziala na uzytkowniku airflow+# Aplikacja dziala na uzytkowniku book
-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=/data/airflow/app+Environment=VIRTUALENV=/home/lukasz/magazyn/tkinter
 Environment=PYTHONPATH=$VIRTUALENV/lib:$PYTHONPATH Environment=PYTHONPATH=$VIRTUALENV/lib:$PYTHONPATH
  
 # PATH nie rozumie zmiennych, wiec trzeba podac pelne sciezki. # PATH nie rozumie zmiennych, wiec trzeba podac pelne sciezki.
-Environment=PATH=/data/airflow/app/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +Environment=PATH=/home/lukasz/magazyn/tkinter/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin
- +
-# Roboczy katalog airflow. +
-Environment=AIRFLOW_HOME=$VIRTUALENV/airflow_home+
  
 # To musi byc pelna sciezka, bez uzywania zmiennych. # To musi byc pelna sciezka, bez uzywania zmiennych.
-WorkingDirectory=/data/airflow/app/bin+WorkingDirectory=/home/lukasz/magazyn/tkinter/app
  
 # Start aplikacji (musi zawierac pelna sciezke). # Start aplikacji (musi zawierac pelna sciezke).
-ExecStart=/data/airflow/app/bin/airflow webserver --host 0.0.0.0 --port 8899+ExecStart=/home/lukasz/magazyn/tkinter/bin/jupyter notebook --no-browser --ip 0.0.0.0 --port 8010 --NotebookApp.token=\'\' --NotebookApp.terminals_enabled=False --NotebookApp.base_project_url='/tkinter'
  
-# Automatyczny restart aplikacji po awarii z opoznieniem 10 sekund,+# Automatyczny restart aplikacji po awarii z opoznieniem 20 sekund,
 # aby uniknac obciazenia CPU w razie nieudanych uruchomien. # aby uniknac obciazenia CPU w razie nieudanych uruchomien.
-#Restart=always +Restart=always 
-Restart=on-failure +RestartSec=20
-RestartSec=10+
  
 # 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/systemd/system/airflow-scheduler.service  +
- +
-<code> +
-[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=/data/airflow/app +
-Environment=PYTHONPATH=$VIRTUALENV/lib:$PYTHONPATH +
- +
-# PATH nie rozumie zmiennych, wiec trzeba podac pelne sciezki. +
-Environment=PATH=/data/airflow/app/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +
- +
-# Roboczy katalog airflow. +
-Environment=AIRFLOW_HOME=$VIRTUALENV/airflow_home +
- +
-# To musi byc pelna sciezka, bez uzywania zmiennych. +
-WorkingDirectory=/data/airflow/app/bin +
- +
-# Start aplikacji (musi zawierac pelna sciezke). +
-ExecStart=/data/airflow/app/bin/airflow scheduler +
- +
-# Automatyczny restart aplikacji po awarii z opoznieniem 10 sekund, +
-# aby uniknac obciazenia CPU w razie nieudanych uruchomien. +
-#Restart=always +
-Restart=on-failure +
-RestartSec=10 +
- +
-# Powiadomienie systemd o uruchomieniu aplkacji. +
-Type=simple+
  
 [Install] [Install]
Linia 114: Linia 41:
 # Autostart aplikacji. # Autostart aplikacji.
 WantedBy=default.target WantedBy=default.target
-After=netfork.target, airflow-webserver.service 
-Wants=airflow-webserver.service  
 </code> </code>
  
 +Następny krok to [[wiki:python_w_apache|utworzenie proxypass w Apache]].
wiki/python_systemd.txt · ostatnio zmienione: 2024/02/07 20:58 przez lukasz

Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki