[Unit] Description=PDF OCR Hotfolder (Instance: %i) After=network-online.target Wants=network-online.target [Service] Type=simple User=pdfocr Group=pdfocr WorkingDirectory=/opt/pdf-ocr-hotfolder ExecStart=/opt/pdf-ocr-hotfolder/venv/bin/python -m pdf_ocr_hotfolder --config /etc/pdf-ocr-hotfolder/%i.toml Restart=on-failure RestartSec=5 # Exit 2 = Konfigurations- oder Preflight-Fehler. Den behebt kein Neustart, # also nicht endlos im 5-Sekunden-Takt neu starten, sondern stehenbleiben — # die Instanz steht dann als 'failed' da und faellt beim Nachsehen auf. # (Restart=on-failure wuerde sonst JEDEN Exit != 0 neu starten; das # Start-Rate-Limit greift bei RestartSec=5 nie.) RestartPreventExitStatus=2 KillMode=mixed # Ein laufendes OCR soll beim Stoppen zu Ende laufen duerfen. Bei SIGKILL # bliebe das Original in working/ liegen (wird beim naechsten Start zwar # wiederaufgenommen, kostet aber den kompletten Durchlauf). TimeoutStopSec=300 # Hardening (lockerer wegen AD-User & Datei-ACLs) NoNewPrivileges=true PrivateTmp=true ProtectSystem=full ProtectKernelTunables=true ProtectKernelModules=true ProtectControlGroups=true [Install] WantedBy=multi-user.target