J'ai le problème suivant: en utilisant un RaspPi 3B exécutant Raspbian Jessie (version 4.4.26-v7 +), je voudrais que l'interface graphique d'un script python auto-écrit soit exécutée au démarrage.
Je sais que cette question a été posée sur ce site ainsi que sur d'autres, mais comme Raspbian continue de changer et qu'aucune des solutions suggérées avant n'a fonctionné pour moi (voir ci-dessous), je voudrais la poser à nouveau.
D'après ma compréhension, je dois charger XServer et exécuter mon script par la suite. Cela devrait se produire au lieu de charger l'ensemble du bureau.
Un moyen d'y parvenir est censé être via le fichier de démarrage automatique LXDE (comme indiqué dans cette réponse ). J'ai édité le fichier /etc/xdg/lxsession/LXDE-pi/autostart
ainsi que le fichier /etc/xdg/lxsession/LXDE/autostart
(le premier contenait à l'origine quatre lignes au lieu de trois comme suggéré dans l'article référencé) - en ajoutant les lignes @sudo python /full/path/to/file.py
et @openbox
, mais mon Pi démarre toujours sur le bureau et n'exécute pas automatiquement le script du tout. Annotation: J'ai essayé uniquement la ligne de script et la ligne de script avec la ligne openbox pour l'un des fichiers et pour les deux fichiers ensemble.
Une autre stratégie implique le fichier rc.local (comme suggéré dans la documentation officielle ). Cependant, l'ajout python /full/path/to/file.py &
n'a pas fonctionné (car il manquait encore mon interface graphique) et l'ajout startx
n'a pas aidé car je ne pouvais apparemment pas lier le startx au script python et le premier s'est donc fermé immédiatement après son démarrage.
Certains suggèrent que (en plus) .xinitrc devrait être utilisé. Cependant, cela n'a pas fonctionné non plus:
su -c python /full/path/to/file.py pi
Et, last but not least, d'une certaine manière, cela devrait être faisable en utilisant init.d - mais je n'ai pas encore trouvé de détails à ce sujet.
J'apprécierais vraiment tout indice dans la bonne direction. Où est mon erreur? À quoi devrait ressembler ma ligne en rc.local ou .xinitrc? Ou y a-t-il eu des changements majeurs liés au passage au pixel et devrais-je essayer autre chose?
Quelques informations supplémentaires: Le script a besoin des droits sudo. Il est écrit en Python 2.7, l'interface graphique utilise Tkinter. L'interface graphique remplit complètement l'écran, donc les arrière-plans ne sont pas pertinents. Le script est censé s'exécuter pour toujours (ou jusqu'à ce qu'il soit arrêté par une entrée utilisateur via l'interface graphique) et utilise des services système comme le wifi et Ethernet.
Plus d'informations: Tout se passe localement.
Clarification: j'ai maintenant passé plus de 8 heures à chercher sur le net, à essayer des didacticiels à partir de différents points de départ ou à les mélanger. J'en suis arrivé à la conclusion que mon script (qui fonctionne parfaitement lorsqu'il est démarré en pixel) ne fonctionne pas s'il est exécuté dans un environnement non-bureau (ce dont je doute) ou qu'un nouveau tutoriel est nécessaire, car les modifications d'octobre 2016 en Raspbian a rendu obsolètes tous les anciens didacticiels. De plus, le défi ne consiste pas à démarrer le script ou à démarrer Xserver (ou quelque chose de similaire) indépendamment les uns des autres, mais à faire les deux liés de sorte que le script utilise l'affichage créé par Xserver.