lancer un sript python au demarrage

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Muj
Messages : 11
Enregistré le : lun. 8 févr. 2016 10:34
Localisation : Landes

lancer un sript python au demarrage

Message par Muj » mar. 25 avr. 2017 13:17

Bonjour,
Je manipule un servomoteur à partir d'une webserv et un script python. Le script python se trouve sous /home/pi.
Actuellement je lance le script python par la commande LX Terminal :
sudo python3 porte.py

J'aimerais lancer le script au démarrage du raspberrypi.
Je suis aller voir plusieurs tutos ou forum avant de vous écrire.
J' ai essayé par "sudo nano /etc/profile" en écrivant la commande " sudo python3 /home/pi/porte.py" à la fin.

J' ai essayé par "sudo nano /etc/rc.local" en écrivant la commande " sudo python3 /home/pi/porte.py" avant #Print the IP address.

Puis en le rendant executable par la commande "chmod" puis j' ai écrit "sudo nano /etc/rc.local" en écrivant la commande " sudo python3 /home/pi/porte.py" avant exit 0.

Ca ne fonctionne toujours pas.
Merci pour votre aide

gege05
Messages : 27
Enregistré le : mar. 4 août 2015 15:58

Re: lancer un sript python au demarrage

Message par gege05 » mar. 25 avr. 2017 13:53

Bonjour,

En mettant dans crontab @reboot sudo /home/pi/porte.py
avec au début de ton script
#!/usr/bin/python3
# -*- coding: utf-8 -*-

Muj
Messages : 11
Enregistré le : lun. 8 févr. 2016 10:34
Localisation : Landes

Re: lancer un sript python au demarrage

Message par Muj » mar. 25 avr. 2017 15:27

Merci pour la réponse rapide.
Pour les commandes en début de script, c'est ok.

Par accéder à crontab, je tape "sudo nano /etc/crontab" et je mets "@reboot sudo /home/pi/porte.py" en dernière ligne.
si c'est oui, ça ne fonctionne toujours pas

dyox
Raspinaute
Messages : 789
Enregistré le : dim. 28 déc. 2014 15:28
Localisation : Le long de la côte, au dessus du pays des bigoudennes, aïe

Re: lancer un sript python au demarrage

Message par dyox » mar. 25 avr. 2017 15:48

Bonjour,

Pour être sûr, les chemins des commandes du script sont-ils absolus ?

Question que je me pose : Puisque vous écrivez dans le crontab de sudo, est-il encore utile de lancer porte.py avec sudo ?

gege05
Messages : 27
Enregistré le : mar. 4 août 2015 15:58

Re: lancer un sript python au demarrage

Message par gege05 » mar. 25 avr. 2017 15:54

Bonjour

Pour modifier le crontab c'est plus sûr d'utiliser

"crontab -e" et pour voir sans modification "crontab -l"

Muj
Messages : 11
Enregistré le : lun. 8 févr. 2016 10:34
Localisation : Landes

Re: lancer un sript python au demarrage

Message par Muj » mar. 25 avr. 2017 16:32

encore merci pour les réponses.
juste une petite question :
Dans /home/pi, quand je double clique sur ouvrir porte.py, il y a une fenêtre qui s'ouvre avec plusieurs possibilités.
Lorsque je fais "éxécuter" , il ne se passe rien, ou alors je fais "lancer dans terminal" , la fenêtre LX Terminal s'ouvre et se referme aussitôt.
Est ce que le problème ne viendrait pas de là?

domi
Administrateur
Messages : 2896
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: lancer un sript python au demarrage

Message par domi » mar. 25 avr. 2017 17:05

Bonjour,

"sudo nano /etc/crontab" est effectivement très risqué, il faut mieux utiliser "sudo crontab -e"
Sudo permet de configurer la crontab de root, donc pas besoin de "sudo" dans le script.
Il faut par contre donner le chemin au complet
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY

gege05
Messages : 27
Enregistré le : mar. 4 août 2015 15:58

Re: lancer un sript python au demarrage

Message par gege05 » mar. 25 avr. 2017 17:33

Bonjour,

Avant de mettre l'exécution de ton script dans un crontab, teste le en ligne de commande, tu auras alors des informations qui te seront utiles.
Si le script "porte.py" attend des réponses, pour l'exécuter en ligne de commande utilise la commande "yes" .

Muj
Messages : 11
Enregistré le : lun. 8 févr. 2016 10:34
Localisation : Landes

Re: lancer un sript python au demarrage

Message par Muj » mar. 25 avr. 2017 17:43

Bonsoir à tous,
juste pour vous donner des nouvelles,
j'ai enlevé la commande "@reboot /home/pi/porte.py" de "sudo nano /etc/crontab".

Je l'ai mis dans "sudo contrab -e". D'ailleurs, il n y a que cette ligne de commande.

Autre chose, dans LXterminal, lorsque je tape "sudo /home/pi/porte.py" le script se lance bien. Donc je ne pense pas que ça vienne du chemin.

Par contre comme je le disais plus tôt, lorsque je double-clique sur le script "porte.py" une fenêtre s' ouvre avec plusieurs choix.
Lorsque je fais "éxécuter" , il ne se passe rien, ou alors je fais "lancer dans terminal" , la fenêtre LX Terminal s'ouvre et se referme aussitôt.
Le probleme ne viendrait pas de là??
Pour le rendre le script "exécutable", j'ai tapé la commande "chmod +x porte.py"

En tout cas merci pour toute l'aide que vous m' apportez!

domi
Administrateur
Messages : 2896
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: lancer un sript python au demarrage

Message par domi » mar. 25 avr. 2017 19:48

lorsque tu fais "sudo /home/pi/porte.py" le script se lance bien, mais il affiche quoi ?
Lorsque tu le lances tu es dans un terminal.
Lorsque tu double-clique dessus, il n'y a pas de terminal.
Lorsque Cron le lance, il n'y a pas non plus de terminal.
c'est donc trois environnements totalement différent.

Le script doit pouvoir s'exécuter dans l'environnement auquel tu le lance.
La question est donc, lorsque tu le lance par "sudo /home/pi/porte.py", est-ce que quelque chose s'affiche ?
Que fait ce script python ?
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY

Répondre

Retourner vers « Python »