[Résolu] Lancement d'un programme au démarrage - SystemD

Bonjour à tous,

J’essaye de lancer un script python au démarrage de mon rpi3 b+, sans avoir à passer par l’interface. Ce script est un simple programme qui lance des musiques avec pygame, quand on appuie sur des boutons.

J’ai d’abord essayé de procéder avec rc.local, mais à part la programmation d’un bouton d’arrêt pour mon rpi, je n’arrive pas à lancer d’aut’res programmes simple au démarrage…

On m’a conseillé de passer plutôt par systemD, mais je me trouve confronter à un problème que je ne sais pas résoudre, malgré mes nombreuses recherches sur internet…

Voilà la façon dont j’ai procédé:

  1. Créer un service « programme_musical_start.service » :

[Unit]
Description = application musique python
After = multi-user.target
[Service]
ExecStart=/usr/bin/python /home/pi/Documents/programme_final_boutons.py
WorkingDirectory=/home/pi/Documents/
User=root
Type=simple
[Install]
WantedBy = multi-user.target

  1. Copier ce fichier dans /etc/systemd/system

sudo cp programme_musical_start.service /etc/systemd/system/programme_musical_start.service
sudo chown root:root /etc/systemd/system/programme_musical_start.service
sudo chmod 666 /etc/systemd/system/programme_musical_start.service

  1. Activer le service

sudo systemctl enable programme_musical_start.service

Ce code me renvoie:
Created synlink /etc/systemd/system/multi-user.target.wants/programme_musical_start.service

  1. Je reboot le raspberry
    Je constate que mon programme ne s’est pas lancé.
    Je vérifie l’état du service en tapant : systemctl status programme_musical_start.service

et la ça me renvoie :

programme_musical_start.service - application musique python
Loaded: loaded (/etc/systemd/system/programme_musical_start.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Thu 2018-07-12 09:27:04 UTC; 4min 53s ago
Process: 607 ExecStart=/usr/bin/python /home/pi/Documents/programme_final_boutons.py (code=killed, signal=HUP)
MainPID: 607 (code=killed, signal=HUP)

juil. 12 09:27:01 raspberrypi systemd[1]: Starting application musique python.
~
~
~

Je ne comprends pas pourquoi j’ai cette erreur…
Peut-être ai-je mal compris comment procéder… J’espère avoir été claire dans mes explications et que quelqu’un saura m’aiguiller.

Merci d’avance pour votre aide !

Bonne journée

Salut,

J’ai cherché il y a peu à faire la même chose pour un projet perso.

J’utilise le fichier /home/pi/.config/lxsession/LXDE-pi/autostart qui permet de lancer des trucs.

Il suffit de trouver le bon codage pour lui faire exécuter le script.
C’est du type @lxterminal –command=…

Tu peux faire un script, par exemple, « programme_final_boutons.py » :slight_smile:

Tu fais sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
ou sudo leafpad /home/pi/.config/lxsession/LXDE-pi/autostart
Tu ajoutes la ligne @lxterminal –command=’./programme_final_boutons.py’

Mais tu dois donner les droits d’exécution en faisant sudo chmod +x /home/pi/Documents/programme_final_boutons.py

ça devrait fonctionner.
Redis moi,

Bonjour,

Merci de ta réponse !

Mais j’ai finalement résolu mon problème avant la voir…
J’explique quand même pour les personnes qui auraient le même souci !

Ma méthode était la bonne, il fallait juste faire quelques modifs
L’utilisateur pi est suffisant, c’était inutile d’utiliser root. Et le type est forking, car c’est un programme python.

Donc dans le fichier service, j’ai juste modifié 2 lignes:
User=pi
Type=forking

Bonne journée,

Salut,

Merci pour le retour.

Tu peux ajouter [résolu] dans ton titre ?

++