Добавьте это в сценарий установки:
sudo mkdir /opt/xauthorityfix
sudo chmod 777 /opt/xauthorityfix
echo "#!/bin/sh" > /opt/xauthorityfix/setxauthority.sh
echo "export XAUTHORITY=$XAUTHORITY" >> /opt/xauthorityfix/setxauthority.sh
sudo chmod 755 /opt/xauthorityfix
После этого оберните ваш скрипт Python в этот скрипт оболочки:
#!/bin/sh
source /opt/xauthorityfix/setxauthority.sh
/usr/bin/python3 /usr/sbin/test_graphic_app.py
И вместо этого пусть служба systemd запустит этот сценарий!
Просто убедитесь, что переменная среды XAUTHORITY задана при запуске сценария установки. Вы можете сделать это, не запуская его с помощью sudo или используя sudo -E
.
По сути, это хранит переменную среды XAUTHORITY в том виде, в каком она есть при запуске скрипта установки, что позволяет вам легко обращаться к ней позже.