- Command intake (reboot/shutdown) on infoscreen/{uuid}/commands with ack lifecycle
- MQTT_USER/MQTT_PASSWORD_BROKER split from identity vars; configure_mqtt_security() updated
- infoscreen-simclient.service: Type=notify, WatchdogSec=60, Restart=on-failure
- infoscreen-notify-failure@.service + script: retained MQTT alert when systemd gives up (Gap 3)
- _sd_notify() watchdog keepalive in simclient main loop (Gap 1)
- broker_connection block in health payload: reconnect_count, last_disconnect_at (Gap 2)
- COMMAND_MOCK_REBOOT_IMMEDIATE_COMPLETE canary flag with safety guard
- SERVER_TEAM_ACTIONS.md: server-side integration action items
- Docs: README, CHANGELOG, src/README, copilot-instructions updated
- 43 tests passing
39 lines
882 B
Desktop File
39 lines
882 B
Desktop File
[Unit]
|
|
Description=Infoscreen Display Manager
|
|
Documentation=https://github.com/RobbStarkAustria/infoscreen_client_2025
|
|
After=network.target graphical.target
|
|
Wants=network-online.target
|
|
# Publish an MQTT alert if systemd gives up restarting (StartLimitBurst exceeded).
|
|
OnFailure=infoscreen-notify-failure@%n.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=olafn
|
|
Group=olafn
|
|
WorkingDirectory=/home/olafn/infoscreen-dev
|
|
Environment="DISPLAY=:0"
|
|
Environment="XAUTHORITY=/home/olafn/.Xauthority"
|
|
Environment="ENV=production"
|
|
|
|
# Start display manager
|
|
ExecStart=/home/olafn/infoscreen-dev/scripts/start-display-manager.sh
|
|
|
|
# Restart on failure
|
|
Restart=on-failure
|
|
RestartSec=10
|
|
|
|
# Logging
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=infoscreen-display
|
|
|
|
# Security settings
|
|
NoNewPrivileges=true
|
|
PrivateTmp=true
|
|
|
|
# Resource limits
|
|
LimitNOFILE=65536
|
|
|
|
[Install]
|
|
WantedBy=graphical.target
|