Tengo el siguiente problema: Uso de un RaspPi 3B con Raspbian Jessie (versión 4.4.26-v7 +) Me gustaría que la GUI de un script de Python auto-escrito se ejecute al inicio.
Sé que esta pregunta se ha formulado tanto en este sitio web como en otros, pero como Raspbian sigue cambiando y ninguna de las soluciones sugeridas antes funcionó para mí (ver más abajo), me gustaría volver a hacerla.
Según tengo entendido, necesito cargar XServer y ejecutar mi script después. Esto debería suceder en lugar de cargar todo el escritorio.
Se supone que una forma de lograr esto es a través del archivo de inicio automático LXDE (como se describe en esta respuesta ). Edité el archivo /etc/xdg/lxsession/LXDE-pi/autostart
y el archivo /etc/xdg/lxsession/LXDE/autostart
(el primero originalmente contenía cuatro líneas en lugar de tres como se sugiere en la publicación mencionada), agregando las líneas @sudo python /full/path/to/file.py
y @openbox
, pero mi Pi aún se inicia en el escritorio y no ejecuta automáticamente el script. Anotación: probé solo la línea de script y la línea de script junto con la línea de openbox para cualquiera de los archivos y para ambos archivos juntos.
Otra estrategia involucra el archivo rc.local (como se sugiere en la documentación oficial ). Sin embargo, solo agregar python /full/path/to/file.py &
no funcionó (ya que todavía faltaba mi GUI) y agregar más startx
no ayudó, ya que aparentemente no pude vincular el startx con el script de python y, por lo tanto, el primero se cerró inmediatamente después de que comenzó.
Algunos sugieren que (adicionalmente) .xinitrc debería usarse. Esto, sin embargo, tampoco funcionó:
su -c python /full/path/to/file.py pi
Y, por último, pero no menos importante, de alguna manera, debería ser factible usando init.d, pero aún no he encontrado detalles sobre esto.
Realmente agradecería cualquier pista hacia la dirección correcta. ¿Dónde está mi error? ¿Cómo debería ser mi línea en rc.local o .xinitrc? ¿O ha habido cambios importantes relacionados con el cambio a píxeles y debería intentar algo más?
Alguna información adicional: el script necesita derechos de sudo. Está escrito en Python 2.7, la GUI está usando Tkinter. La GUI llena la pantalla por completo, por lo que los fondos son irrelevantes. Se supone que la secuencia de comandos se ejecuta para siempre (o hasta que la entrada del usuario la detenga a través de la GUI) y utiliza servicios del sistema como wifi y ethernet.
Más información: Todo está sucediendo localmente.
Aclaración: por ahora pasé más de 8 horas buscando en la red, probando tutoriales desde diferentes puntos de partida o mezclándolos. Llegué a la conclusión de que mi script (que funciona perfectamente cuando se inicia en píxeles) no funciona si se ejecuta en un entorno que no es de escritorio (lo cual dudo) o que se necesita un nuevo tutorial, porque el octubre de 2016 cambia a Raspbian hizo obsoletos los tutoriales anteriores. Además, el desafío no radica en iniciar el script o iniciar Xserver (o algo similar) independientemente el uno del otro, sino en hacer ambos enlaces para que el script utilice la pantalla creada por Xserver.