dune-weaver-touch.service 952 B

123456789101112131415161718192021222324252627282930
  1. [Unit]
  2. Description=Dune Weaver Touch Interface
  3. After=multi-user.target network-online.target
  4. Wants=network-online.target
  5. # Wait for DRM/KMS devices to be ready
  6. After=systemd-udev-settle.service
  7. Wants=systemd-udev-settle.service
  8. [Service]
  9. Type=simple
  10. User=pi
  11. Group=pi
  12. WorkingDirectory=/home/pi/dune-weaver-touch
  13. Environment=QT_QPA_PLATFORM=eglfs
  14. Environment=QT_QPA_EGLFS_ALWAYS_SET_MODE=1
  15. Environment=QT_QPA_EGLFS_HIDECURSOR=1
  16. Environment=QT_QPA_EGLFS_INTEGRATION=eglfs_kms
  17. Environment=QT_QPA_EGLFS_KMS_ATOMIC=1
  18. # CPU isolation: Pin touch app to core 3, lower priority to prevent starving motion backend
  19. # Backend runs in Docker pinned to cores 0-2 for serial I/O timing reliability
  20. Nice=10
  21. CPUQuota=25%
  22. ExecStart=/usr/bin/taskset -c 3 /home/pi/dune-weaver-touch/venv/bin/python /home/pi/dune-weaver-touch/main.py
  23. Restart=always
  24. RestartSec=10
  25. StartLimitInterval=200
  26. StartLimitBurst=5
  27. [Install]
  28. WantedBy=multi-user.target