cuckoo-escapement/dashboard/deploy/gpsntp-dashboard.service

36 lines
1.1 KiB
SYSTEMD
Raw Normal View History

[Unit]
Description=gps-ntp status dashboard
Documentation=https://git.supported.systems/time-pi
After=network-online.target gpsd.service chrony.service
Wants=network-online.target
[Service]
Type=exec
User=gpsntp
Group=gpsntp
ExecStart=/opt/gpsntp-dashboard/.venv/bin/gpsntp-dashboard
Environment=GPSNTP_PORT=8080
Environment=GPSNTP_HOST=0.0.0.0
Restart=on-failure
RestartSec=3
# Keep the dashboard OFF cpu0. The PPS interrupt is handled on cpu0 and cannot
# be moved (Pi 4 GPIO IRQs are demuxed through pinctrl-bcm2835 and refuse an
# smp_affinity), so any load there directly adds jitter to the timestamp.
# Measured: the dashboard cost ~36% more PPS jitter before this. It is a
# monitoring tool; it must never perturb the clock it is watching.
CPUAffinity=1
Nice=10
# Hardening. NoNewPrivileges is intentionally NOT set: the served-clients
# panel shells `sudo -n chronyc -c clients`, allowed by a narrow sudoers rule.
PrivateTmp=true
ProtectHome=true
ProtectControlGroups=true
ProtectKernelTunables=true
RestrictSUIDSGID=false
LockPersonality=true
[Install]
WantedBy=multi-user.target