Files
MoShiro/packaging/systemd/monitor-agent.service
T
2026-10-04 21:46:39 +08:00

44 lines
1.1 KiB
Desktop File

[Unit]
Description=Monitor agent (network line quality collector)
After=network-online.target
Wants=network-online.target
[Service]
Type=exec
User=monitor
Group=monitor
ExecStart=/usr/lib/monitor/monitor-agent --config /etc/monitor/agent.json
Restart=always
RestartSec=5
# The agent is a pure collector: it reads its config and identity, never writes files, never starts processes.
ReadOnlyPaths=/etc/monitor
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=yes
PrivateTmp=yes
PrivateDevices=yes
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectKernelLogs=yes
ProtectControlGroups=yes
ProtectClock=yes
ProtectHostname=yes
RestrictAddressFamilies=AF_INET AF_INET6
RestrictNamespaces=yes
RestrictRealtime=yes
LockPersonality=yes
# NativeAOT does not JIT, so writable+executable memory is never needed.
MemoryDenyWriteExecute=yes
SystemCallArchitectures=native
# CAP_NET_RAW only for ICMP target tasks. Ports below 1024 need CAP_NET_BIND_SERVICE (add it in a drop-in).
CapabilityBoundingSet=CAP_NET_RAW
AmbientCapabilities=CAP_NET_RAW
MemoryMax=128M
TasksMax=64
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target