[Unit] Description=TESM Lizenzserver (Master) After=network.target [Service] Type=simple User=root WorkingDirectory=/srv/tesm-license # Analog zu TESM_WEB_PROCESS bei TESM selbst -- markiert diesen Prozess als # den echten Web-Dienst (startet den Lizenz-Heartbeat- und den Auditlog- # Archivierungs-Thread genau einmal). Anders als bei TESM importiert hier # kein Hilfsskript app.py periodisch als Modul (kein Geräte-Polling auf # dem Lizenzserver) -- das Flag bleibt trotzdem gesetzt, für den Fall # künftiger Hilfsskripte und zur Konsistenz mit dem TESM-Muster. Environment=TESM_LICENSE_WEB_PROCESS=1 # Kein WebSocket-Terminal wie bei TESM -- gthread/--timeout 0 daher nicht # nötig, ein paar Threads reichen für die parallele Aktivierungs-/ # Heartbeat-API mehrerer Kunden. # "--bind 127.0.0.1:5000" wie bei TESM: nur über den nginx-Reverse-Proxy # von außen erreichbar. ExecStart=/srv/tesm-license/venv/bin/gunicorn --workers 1 --threads 8 \ --bind 127.0.0.1:5000 app:app Restart=always RestartSec=5 [Install] WantedBy=multi-user.target