mirror of
https://github.com/agessaman/meshcore-bot.git
synced 2026-08-14 14:40:00 +00:00
StartLimitInterval and StartLimitBurst were set under [Service], where systemd 230 and later ignore them — they moved to [Unit] in 2016. The unit silently fell back to the system defaults of 5 starts in 10 s, and because RestartSec=10 spaces attempts further apart than that window, the limiter could never trip: a bot that could not reach its radio restarted every 10 seconds indefinitely instead of stopping in failed state. Moved to [Unit] as StartLimitIntervalSec=60 / StartLimitBurst=3, the values the file already declared. Applied to both the shipped unit and the one generated for the .deb, which had drifted the same way.
53 lines
1.3 KiB
Desktop File
53 lines
1.3 KiB
Desktop File
[Unit]
|
|
Description=MeshCore Bot - Mesh Network Bot Service
|
|
Documentation=https://github.com/agessaman/meshcore-bot
|
|
After=network.target
|
|
Wants=network.target
|
|
|
|
# Restart policy. These belong in [Unit], not [Service] — systemd 230 moved them,
|
|
# and it silently ignores them anywhere else. Give up after 3 starts in 60 s so a
|
|
# bot that cannot reach its radio lands in `failed` instead of looping forever.
|
|
StartLimitIntervalSec=60
|
|
StartLimitBurst=3
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=meshcore
|
|
Group=meshcore
|
|
WorkingDirectory=/opt/meshcore-bot
|
|
ExecStart=/opt/meshcore-bot/venv/bin/python /opt/meshcore-bot/meshcore_bot.py --config /etc/meshcore-bot/config.ini
|
|
ExecReload=/bin/kill -HUP $MAINPID
|
|
Restart=always
|
|
RestartSec=10
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=meshcore-bot
|
|
|
|
# Environment variables
|
|
Environment=PYTHONPATH=/opt/meshcore-bot
|
|
Environment=PYTHONUNBUFFERED=1
|
|
|
|
# Security settings
|
|
NoNewPrivileges=true
|
|
PrivateTmp=true
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
UMask=0077
|
|
ConfigurationDirectory=meshcore-bot
|
|
ConfigurationDirectoryMode=0700
|
|
StateDirectory=meshcore-bot
|
|
StateDirectoryMode=0700
|
|
LogsDirectory=meshcore-bot
|
|
LogsDirectoryMode=0750
|
|
ReadWritePaths=/etc/meshcore-bot
|
|
ReadWritePaths=/var/lib/meshcore-bot
|
|
ReadWritePaths=/var/log/meshcore-bot
|
|
|
|
# Resource limits
|
|
LimitNOFILE=65536
|
|
MemoryMax=1G
|
|
CPUQuota=200%
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|