[Unit] Description=FIPS Mesh Network Daemon After=network-online.target Wants=network-online.target # The config file is no longer a packaged conf-file; postinst seeds it # if absent. Skip the unit (inactive, not failed) rather than crash-loop # if it is ever missing. ConditionPathExists=/etc/fips/fips.yaml [Service] Type=simple ExecStart=/usr/bin/fips --config /etc/fips/fips.yaml Restart=on-failure RestartSec=5 # Control socket directory (/run/fips/). # Group-accessible so 'fips' group members can use fipsctl/fipstop. RuntimeDirectory=fips RuntimeDirectoryMode=0750 # Log directory (/var/log/fips/), where the built-in tick-body profiler writes # its capture files. Declared so systemd creates it on start and removes it on # purge; the daemon runs as root and already has access without it. LogsDirectory=fips # Security hardening (daemon runs as root for TUN and raw sockets) ProtectHome=yes PrivateTmp=yes ProtectKernelModules=yes ProtectKernelTunables=no [Install] WantedBy=multi-user.target