Files
MoShiro/packaging/systemd/moshiro-agent.service
T
justme 83e5120377 refactor!: rename the project from Monitor to MoShiro
Namespaces, assemblies, projects and directories, the solution, binaries,
images, systemd units, config paths, environment variables, protocol method
names, the media type and the raw chunk magic all move to MoShiro/moshiro.
Existing data and deployments are not compatible and must be recreated.
Also fix the architecture tests after the solution layout change and make
the update tests independent of their order.
2026-10-07 01:49:04 +08:00

44 lines
1.1 KiB
Desktop File

[Unit]
Description=MoShiro agent (network line quality collector)
After=network-online.target
Wants=network-online.target
[Service]
Type=exec
User=moshiro
Group=moshiro
ExecStart=/usr/lib/moshiro/moshiro-agent --config /etc/moshiro/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/moshiro
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