#shell #gtk3 #systemd #xserver #gdk
Вопрос:
Я пытаюсь запустить команды графического интерфейса в службах systemd, которые я хочу, чтобы он выполнялся при запуске системы.
это мои файлы.
oversteer.sh файл:
#!/bin/bash
sleep 1s
export DISPLAY=:99.0
export SCREEN_WIDTH=1200
export SCREEN_HEIGHT=960
export SCREEN_DEPTH=24
export GEOMETRY="${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH}"
sudo oversteer --autocenter 45 amp;
sudo oversteer --range 720
файл oversteer.service:
[Unit]
Description = oversteer
After=local-fs.target
[Service]
Environment="DISPLAY=:0"
Environment="XAUTHORITY=/home/ubuntu/.Xauthority"
ExecStart=/home/ubuntu/g29_steering_wheel/autostart_scripts/oversteer.sh
Restart=on-failure
Type=simple
StandardOutput=journal console
[Install]
WantedBy=multi-user.target
Я поместил этот файл в /etc/systemd/system и предоставил исполняемые файлы, а также права root. Однако, похоже, что эта служба не работает из-за отсутствия дисплея.
ошибка заключается в следующем:
Unable to init server: Could not connect: Connection refused
Unable to init server: Could not connect: Connection refused
Unable to init server: Could not connect: Connection refused
Unable to init server: Could not connect: Connection refused
(oversteer:8052): Gdk-CRITICAL **: 08:00:50.744: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
(oversteer:8053): Gdk-CRITICAL **: 08:00:50.763: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/matplotlib/backends/backend_gtk3.py", line 45, in <module>
cursors.MOVE : Gdk.Cursor.new(Gdk.CursorType.FLEUR),
TypeError: constructor returned NULL
Я работаю на raspi 4 с ubuntu 20.04. Превышение скорости-это пакет для управления параметрами моего джойстика.
Комментарии:
1. У вас есть и
DISPLAY=:99.0
то, и другое, иDISPLAY=:0
там. Что это такое? Кроме того, может быть wiki.debian.org/Xinitrc чтобы запустить сценарий после запуска оконной среды…2. это все еще не работало, когда я удалил ДИСПЛЕЙ=:0