bonjour,
voilà après 8 jours de bataille, qui m’ont permis de de comprendre systemd, du moins le commande load deamon, systemct start enable status reload etc qui m’ont permis de faire un plein de tests … je butte toujours (cf les log cidessous) : le lancement par /etc/rc.local dans un terminal est parfait … par contre systemd avec le service ci dessous bloque quand il rencontre ma demande de termminal pour mon script python interactif avec la raison « CANNOT OPEN DISPLAY » ( par contre il exécute bien dans le terminal de log la publication de l’adresse IP) … merci de vos idées …
j’ai rebranché clavier et écran sur la raspberry 3 sous rasbian et j’ai bien obervé qu’après ctrl alt/F1 je quittais l’interface ( plus de souris ;;;; mais pas de trace de mon programme pyhton input/ print) graphique et pour y revenir sans problème par F7
pour rappel voici le service dans lequel je commente Display ou non de même pour les référence à tty1 ça chage pas le résultat « CANOT OPEN DISPLAY »
----------------------------------------------------------- avec le rc.local qui fonctionne parfaitement par /etc/rc;local dans un terminal il ouvre un autre terminal
This script is executed at the end of each multiuser runlevel.
Make sure that the script will « exit 0 » on success or any other
Print the IP address
_IP=$(hostname -I) || true
if [ « $_IP » ]; then
printf « My IP address is %s\n » « $_IP »
fi
Je n’y connais rien en python, mais j’en ai fait un peu la semaine dernière.
Et je gère divers services en lancement automatique, alors je tente.
Et, au pire, je n’ai pas peur d’être contredit par plus compétent
Si on bosse en mode console, on automatise en chargeant un script avant la séquence graphique.
Donc édition de rc.local avec sudo nano /etc/rc.local
On y insère sudo python3 /home/pi/script.py& ou sudo python /home/pi/script.py& (selon la version de python) juste avant la ligne # Print the IP address
Le fichier sera :
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sudo python3 /home/pi/script.py&
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
exit 0
Ensuite, création du script avec sudo nano /home/pi/script.py.
Et (je le fais, mais utile ?) application des droits avec sudo chmod +x /home/pi/script.py
Mon script démarre sans souci.
En version graphique (j’ai des Rpi en console et d’autres en graphique et même des script différentiels si console ou graphique) :
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
On ajoute python /home/pi/script.py à la dernière ligne.
Mais ton message Cannot Open Display, ce n’est pas un souci d’affichage ???
On dirait qu’il veut lancer un prog en mode graphique alors qu’il est en console.
Essaye de passer ton Rpi en mode graphique au démarrage pour voir si ça ne résoudrait pas le souci.
merci nabla pour une telle réponse si rapide, je vais tester comme tu dis mais encore un conseil …
Commet fais tu pour lancer
« On dirait qu’il veut lancer un prog en mode graphique alors qu’il est en console.
Essaye de passer ton Rpi en mode graphique au démarrage pour voir si ça ne résoudrait pas le souci. »
je comprends pas comment faire, puisque quand je reboot je me retrouve toujours sur le bureau raspbian comme sis de rien n’était.
Erreur de ma part.
je pensais que tu démarrais en mode console.
Donc ce n’est pas ça le souci.
Tu as installé bcp de truc ?
Parce que si tu veux juste lancer un script, autant repartir d’une install propre ou tu n’as rien tripatouillé (là, ça doit être le chantier).
d’accord j’ai testé ta deuxième proposition car mon script de test très simplifié compte 2 print et un input donc il me faut un terminal pour l’interaction
le script ne se lance pas, par contre le log ne montre plus « Cannot open dysplay » c’est un bon début !
mais dis moi par quel mécanisme le fichier /etc/xdg/lxsession/LXDE-pi/autostart est til lancé ?
Tes conseils me poussent à désactiver le rc-local;service de systemd c’est bien ça ? pratique tu systemd où préconises tu l’abandonner ?
En tout cas je vois que mes tentative précédent parasite tout et donc je fais faire le ménage et reprendre tes propositions …
je te ferai un retour bien sûr merci
Attention, je suis juste un mec normal, alors je suis loin d’être le plus pédagogue et/ou le plus compétent.
J’utilise systemctl pour MotionEye
J’utilise rc.local qd je veux que ça démarre « au démarrage »
Et j’utilise /etc/xdg/lxsession/LXDE-pi/autostart quand je veux que ça soit lancé après le démarrage de l’interface graphique
Par exemple, tu demandes à ton Rpi de démarrer en mode console.
Tu fais un script lancé par rc.local pour que ton Rpi dise « OK ; système en route »
Et tu fais un script qui dira « Mode Graphique activé » ; script lancé par /etc/xdg/lxsession/LXDE-pi/autostart
Tu démarres ; ça va dire « OK ; système en route » et c’est tout.
Mais si tu tapes startx, alors tu auras le droit à « Mode Graphique activé » une fois le Bureau chargé.
Tout ça est bien clair … je vais donc faire le ménage des Cron et autres autostart et revenir ta démarche qui balise bien les choix
Je me sens confiant reste plus qu’à réinstaller… merci
salut salut victoire !
j’ai résolu le problème en suivant le conseil suivant … réinstaller ma rasbian car sans doute tous mes essais avaient semer la pagaille donc rasbian strecht « neuve »
et j’ai obtenu du premier coup le résultat rechercher
@lxterminal -e /usr/bin/python3.5 /home/pi/Documents/robot/vrairobot.py [/size] que vous adapterez en fonction de votre arborescence
comme avant dernière ligne ;;; pour être précis avant donc
point-rpi
et voilà comme je sors de 8 jours de galère
un grand merci à ceux qui m’ont aidé. Merci à Nabla sur ce forum
une vrai petit tuto serai le bienvenu, car beaucoup de post raène à des solution obsolète ou à la discipline de systemd qui n’est absolument pas documenté pour un tel cas.
Tu peux insérer [Résolu] dans ton titre en éditant ton premier message ?
Tu as raison pour les tutos, on trouve de tout, mais c’est aussi parce que les services évoluent alors que les articles/tutos restent archivés (et pas toujours datés).
Le truc limitant peut aussi résider dans les mots clefs utilisés.
Tu mettrais quoi comme titre au tuto ?