Je voudrais lancer un programme python au démarrage de la raspberry pi.
Pour cela j’ai effectué les étapes suivantes:
j’ai rendu executable mon fichier.py
j’ai modifier le srcipt /etc/rc.local en rajoutant la ligne : pyhton « home/pi/Documents/fichier.py » &
Cependant avant de tester si cela marche j’aimerais savoir si une fois mon programme finis, l’interface de base rasbian se lance. En gros j’aimerais être sur que je peux revenir sur un démarrage normal de rasbian et ne pas être bloqué sur mon application quand j’allume ma raspberry.
Tu peux éditer le fichier /home/pi/.config/lxsession/LXDE-pi/autostart avec sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Puis ajouter la ligne @lxterminal --command="./fichier.py"
Normalement, ça fonctionne au démarrage.
Et tu pourras virer la ligne de /home/pi/.config/lxsession/LXDE-pi/autostart pour stopper cet automatisme.
J’ai des scripts auto sur certains Rpi de cette façon.
Le mode d’éxecution de rc.local n’est pas le même en fonction de la version de Raspbian.
Avec init.d (anciennes versions), il est lancé automatiquement en fin de boot par /etc/init.d/rc.local
Avec systemd, on vérifie son lancement avec « systemctl status rc-local ».
Donc être sûr dans un premier temps que rc.local est bien lancé en fin de boot.
Théoriquement rc.local doit toujours se terminer avec un code retour 0 (exit 0)
Pour cela, il est conseillé de lancer les commandes en tâche de fond (non bloquantes) par un « & » en fin de ligne.
Avant de redémarrer le système, il est conseillé avec l’utilisateur root de copier/coller l’intégralité de la commande dans un terminal, afin de valider sa bonne exécution.
Donc dans le cas présent, le fait d’ajouter cette ligne ne doit pas bloquer la séquence de boot.
N.B. : Dans la ligne de commande, il manque « / » avant « home »
Merci beaucoup pour ta réponse rapide. J’ai essayé ta technique et elle marche très bien
Cependant avec cette méthode mon code est executé après le démarrage complet de la Raspberry Pi (du coup apres que Rasbian est été executé).
Or je voudrait executé mon code en fin de boot.
J’ai pas encore tester la technique de jelopo, je le ferait demain.
Merci encore pour vos réponses
Ha oui, c’était l’idée dans mon cas en fait … ça devait lancer notamment des choses graphiques une fois le démarrage fait avec affichage du bureau.
Désolé,
@nabla, merci de me donner tant d’honneur!
Mais rassures toi, j’y connais que couik en vidéo. Chacun son domaine de connaissance et de spécialisation.
Rassures-toi ta solution est entièrement valable, pour un environnement graphique je ne la contredit pas du tout.
C’est juste que @LauraPerla avait déjà parlé dans sont point 2 de l’utilisation de rc.local, et j’ai voulu donner des précisions par rapport à ce point, sans vouloir te court-circuiter le moins du monde. Disons que c’est une approche parallèle. J’aurais certainement du être plus explicite dans mon premier post.
Comme souvent, il n’y a pas qu’un seul chemin pour avoir un résultat.
Au final je suis resté sur ta technique elle marche bien : )
Cependant, il faudrait que j’exécute deux codes en parallèle, du coup j’ai écris à la place : @lxterminal --command="./fichier1.py & ./fichier2.py"
Mais cela ne marche pas…
Aurait tu une solution ?
ps : quand j’exécute cette commande directement sur le terminal ça marche très bien
Exact, ce n’est pas une redirection « | », mais un enchaînement « ; » qu’il faut dans ce cas.
Sinon il est aussi possible de lancer les scripts à la suite en tâche de fond comme ceci