Executer un programme au démarrage du raspberry


#1

Bonjour à tous,

Voila je debute avec le raspberry et je suis confronter a un probleme. Malgré un bon paquet de recherche sur internet et de multitudes de tentatives je n’arrive pas faire ce que je veut. J’aimerai que au démarage du raspberry mon programme en python s’execute automatiquement dans le terminale.
Mon programme est tres simple :
#!/usr/bin/python2

Print(‘Hello’)

Merci pour votre aide :slight_smile:


#2

Salut,

Dans le temps, j’avais réussi à coller un script en bash dans la séquence de démarrage pour lancer Motion.
ça fonctionnait.
Mais je ne me souviens plus du chemin et la version de Raspbian a évolué depuis.
Un truc du genre /etc/init.d/rc.local
A creuser.

Sinon, tu peux essayer de coller une tache cron avec @reboot ou un truc comme ça.


#3

Ci tu veut en savoir plus sur cron regarde ici Faire un reboot automatique [résolu]


[RESOLU] Lancer un programme graphique au démarrage
#4

Bonjour,

Pour démarrer un programme au démarrage de la session graphique, créer un fichier dans ~/.config/autostart/mon_programme.desktop

[Desktop Entry]
Type=Application
Exec=
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true

Mettre la ligne de comande à lancer après Exec=


#5

Apres plusieurs recherche sur crontab j’ai essayer sa :
crontab -e
@reboot /user/bin/python /root/mon_programme.py
Puis j’ai enregistrer et redémarrer le raspberry sans succès. J’ai surement du faire une erreur quelquepart.
Je vais aussi essayer la methode de jelopo ! :slight_smile:


#6

N’est pas bon non plus c’est /usr/bin/python
A+


#7

J’ai rectifié mon erreur et essayer l’autre methode mais rien a faire le programme ne demarre pas automatique dans le terminal dans les deux cas :confused:


#8

Qu’est ce que tu appelles “terminal” ? Une session graphique avec un terminal ou un écran tout en ligne de commande ?


#9

Pour moi c’est une session graphique avec un terminale


#10

Bonjour,
du coup, tu souhaites réaliser 2 actions au démarrage de la session graphique, ouvrir un terminal et exécuter un programme python dedans, c’est bien ça ?

A+


#11

Oui c’est exactement sa :slight_smile:


#12

Dans ce cas, il faut passer par la solution de créer un fichier de démarrage dans ~/.config/autostart comme expliqué plus haut, et demander à lancer un terminal et ouvrir le programme Python dedans.
Je n’ai pas de session graphique sur mes PI pour le moment, mais ça devrait donner un truc du genre

Exec=/usr/bin/lxterminal --command "/usr/bin/python /chemin/script_python.py"

Si ça ne fonctionne pas du premier coup, commencer par seulement ouvrir un terminal (sans l’option --command)

A+


#13

Sa ne Fonctionne toujours pas je vais essayer de réinstaller Raspbian et refaire les manips


#14

Bonjour,

Ne peux tu pas prendre exemple sur ce forum : https://www.jeedom.com/forum/viewtopic.php?f=157&t=28608 ?

il lance un programme python au démarrage de sa machine par un script sh


#15

ton script doit être éxécutable pour un lancement direct

sudo chmod +x mon script.py

Je ne comprends pas ce que tu veux faire :

  • tu veux que le script s’exécute au démarrage
  • tu veux que la console s’ouvre au démarrage en affichant ‘hello’
  • tu veux qu’il s’affiche ‘hello’ quand tu ouvres ta console ?

Un script affichant ‘hello’ n’apparaitra pas sur ton bureau, il sera executé comme un service.
D’où le fait que tu ne le vois pas, et qu’il faille le rendre executable.


#16

Salut les rois du clavier IoI

Bon j’ai les mêmes problèmes que beaucoup d’entre vous : comment lancer un programme python /home/pi/Monfichier.py au démarrage du Rpi ?

Après BEAUCOUP de tentatives, d’efforts, et de lecture de forums en anglais et en français, j’ai réussi !

Voici mes résultats : j’ai testé 2 solutions très différentes.

Solution 1 : Créer un fichier dans /etc/systemd/system/ et lui donner un nom quelconque avec une extension “.service”, exemple MonFichierDeDemarrage.service
Editer ce fichier par un sudo nano MonFichierDeDemarrage.service , et mettre dedans :

[unit]
description=cequevousvoulez!
[service]
Type=simple
ExecStart=ArboresenceComplèteDeVotreExécutable &
[install]
WantedBy=multi-user.target

Explications : ArboresenceComplèteDeVotreExécutable c’est le chemin complet de la commande que vous voulez lancer, du style /usr/bin/python3 /home/pi/Monfichier.py

Mettre le & à la fin de la ligne permet au programme ainsi lancé de s’exécuter en tâche de fond. Si vous ne mettez pas le &, le RPi risque d’attendre la fin de ce programme pour lancer l’interface graphique. Si votre programme est une boucle sans fin, ça risque de mal se passer IoI
Inconvénient de ce type de lancement : vous ne voyez pas à l’écran si votre programme tourne !

Solution 2 : programme qui se voit à l’écran !!
Dans le fichier /etc/xdg/lxsession/LXDF-pi/autostart, rajouter à la fin :
@/usr/bin/lxterminal --command /home/pi/FichierBatch.sh

Ensuite, créer ce FichierBatch.sh au bon endroit dans le chemin déclaré ci-dessus (dans notre exemple, /home/pi) et TRES IMPORTANT lui donner les droits d’accès (click droit/propriétés) en exécution pour tout le monde, ou seulement pour le propriétaire, c’est suivant l’utilisation que vous allez en faire !

Editer ce fichier et écrire les lignes suivantes :
#!/bin/bash
/usr/bin/python3 /home/pi/Monfichier.py

Au boot du RPi, l’interface graphique se lance, puis la fenêtre du terminal LX s’ouvre, et enfin le programme python s’exécute !

Je pense que dans la plupart des cas, comme j’ai pu voir dans beaucoup de forums, ça ne fonctionne pas parce que les droits en exécution n’ont pas été données au fichier batch tout simplement…

Je travaille sur un RPi B+ avec python3, mais je pense que ce tuto devrait marcher pour tout le monde IoI

Bon courage les gars (et les filles) !


#17

Salut,

Merci pour ton message.

En fait, il n’était pas utile de déterrer un vieux post puis le sujet a été maintes fois abordé depuis (il y a eu des modifications de structure dans Raspbian).
En plus, des solutions plus simples existes.

Par exemple, il y a 3 jours :

++