[Unit] Description=ButtonTask Qt5 UI After=NetworkManager.service Wants=NetworkManager.service # Never give up restarting; restart storms are escalated to a reboot by # buttontask-displaywatch (bt-displaywatch), with a daily cap. StartLimitIntervalSec=0 [Service] Type=simple # GUI watchdog: the binary enables it itself (WATCHDOG_USEC=30s after the # first rendered frame) and pings once per real frame. No WatchdogSec= here, # so older binaries without the ping still run under this unit. NotifyAccess=main # On a watchdog timeout systemd sends SIGABRT; if the process does not die # within 10 s (stopped / stuck), SIGKILL instead of the default 90 s wait. TimeoutAbortSec=10s User=buttontask Group=buttontask SupplementaryGroups=video render input WorkingDirectory=/opt/buttontask/current Environment=BUTTONTASK_ROOT=/opt/buttontask Environment=BUTTONTASK_CONFIG=/opt/buttontask/config/config.json Environment=QT_QPA_PLATFORM=eglfs Environment=QT_QPA_EGLFS_INTEGRATION=eglfs_kms Environment=QT_QPA_EGLFS_HIDECURSOR=1 Environment=XDG_RUNTIME_DIR=/tmp/runtime-buttontask ExecStart=/opt/buttontask/current/ButtonTask --config /opt/buttontask/config/config.json Restart=always RestartSec=3 [Install] WantedBy=multi-user.target