[Unit] Description=Local CI/CD — auto-restart act_runner if stopped (rate-limited) Documentation=file:///opt/ci/local-ci-cd-system/deploy/systemd/README.md After=network-online.target act-runner.service [Service] Type=oneshot User=ci-runner Group=ci-runner EnvironmentFile=/etc/ci/environment # `monitor runner` enforces internal rate-limit: max 3 restarts/h # (matches Windows CI-RunnerHealth scheduled task semantics). ExecStart=/opt/ci/venv/bin/python -m ci_orchestrator monitor runner TimeoutStartSec=5min Nice=15 ProtectSystem=strict ProtectHome=true PrivateTmp=true # NoNewPrivileges intentionally NOT set: monitor may need to call # `systemctl restart act-runner.service` via polkit. ReadWritePaths=/var/lib/ci /var/log/ci [Install] WantedBy=multi-user.target