Я использую Python для разработки простого плагина на основе dbus (dbus.service.Object), который принимает вызовы IPC из сценария командной строки.Служба dbus настроена для размещения в systemd.Он работает, как ожидалось.Однако, когда я добавил в плагин возможность запуска терминала gnome, это не удалось.Кажется, что выполнение застревает в любом из этих вызовов подпроцесса, независимо от того, является ли это call () или Popen ().Интересно, как сделать так, чтобы плагин правильно запускал gnome-терминал?
#subprocess.call(['gnome-terminal', '--', '/bin/bash', '-c', 'ls', '-al', '&'])
#subprocess.call(['systemd-run', '--user', '--service-type=forking', 'gnome-terminal', '-t', "Test",'--','/bin/bash', '-c', 'ls', '-al', "&"])
#subprocess.call(['DISPLAY=:0', 'gnome-terminal', '--', '/bin/bash', '-c', 'ls', '-al', '&'])
Вещи, которые я также пытался запустить скрипт Python из плагина и у меня есть скрипт для запуска gnome-терминала, но все равно не удалось.
Ошибка означает, что терминал не открывается, иPS не показывает терминал.Я также пытался с os.system.Работает, если работает прямо с консоли.
os.system ('gnome-терминал - / bin / bash -c "python /data/scripts/test.a.1.py -f /data/station_profile_A.json"')
Журнал журнала показывает ошибку ниже:
21 декабря 09:34:20 координатор ubuntu [5380]: Невозможно инициализировать сервер: Не удалось подключиться: соединение отклонено 21 декабря 09:34:20 координатор ubuntu[5380]: # Не удалось проанализировать аргументы: Не удается открыть дисплей:
Если я добавлю «DISPLAY =: 0» перед терминалом gnome, это не поможет.