Ejecutando Raspberry Pi 4 con Ubuntu Server 19.10, Python 3.7.5 python3-xlib==0.15
y pyautogui==0.9.50
. Todo se ejecuta como el ubuntu
usuario predeterminado.
Estoy intentando enviar Machine A
un comando ssh para Machine B
ejecutar un programa GUI y realizar algún procesamiento. Recibo algunos XAUTHORITY
errores.
Nota: No quiero ver la GUI en Machine A
el monitor, pero la aplicación que se ejecuta Machine B
necesita una GUI.
Así que Machine A
ejecuto:
subprocess.Popen(['ssh', 'ubuntu@ip_of_machine_B', 'python3', '/path/to/my_script.py'])
encendido Machine B
, my_script.py
se ejecuta
subprocess.call(['python3', '/path/to/gui_script.py'])
Finalmente, gui_script.py
los intentos de
import os
os.environ['DISPLAY'] = ':0'
os.environ['XAUTHORITY'] = '/run/user/1000/gdm/Xauthority'
import subprocess
import pyautogui
subprocess.Popen(['the_gui_app'])
# Do stuff with pyautogui and the app.
Desafortunadamente, gui_script.py
está arrojando lo siguiente.
Xlib.error.DisplayConnectionError: Can't connect to display ":0": No protocol specified.
También intenté configurar el entorno en la subprocess
llamada a my_script.py
través de
my_env = os.environ.copy()
my_env['DISPLAY'] = ':0'
my_env['XAUTHORITY'] = '/run/user/1000/gdm/Xauthority'
subprocess.call(['python3', '/path/to/gui_script.py'], env=my_env)
Pero eso también fracasó.
Mi mejor suposición es que necesito cambiar alguna configuración en algún lugar Machine B
antes de ejecutar el flujo de trabajo (es decir, una edición única xauth
). ¡Este es un sistema cerrado por lo que la seguridad no es un problema!