LuuB
Posts: 2
Joined: Thu Jun 07, 2018 8:51 am

Lancement d’un programme au démarrage - SystemD

Thu Jul 12, 2018 12:51 pm

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.

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

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

1. Créer un service “programme_musical_start.service” :

Code: Select all

[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
2. Copier ce fichier dans /etc/systemd/system

Code: Select all

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
3. Activer le service

Code: Select all

sudo systemctl enable programme_musical_start.service
Ce code me renvoie:

Code: Select all

Created synlink /etc/systemd/system/multi-user.target.wants/programme_musical_start.service
4. 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 :

Code: Select all

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

jelopo
Posts: 1368
Joined: Wed Oct 17, 2012 7:53 pm

Re: Lancement d’un programme au démarrage - SystemD

Thu Jul 12, 2018 1:29 pm

Bonjour,

Je ne connais pas systemd mais, la précision de la présentation du problème avec les détails de la procédure ainsi que le code erreur généré, mérite d'avoir une réponse. Bravo pour ce post, ça change tellement de "j'ai suivi un tuto, ça marche pas." !

Au vu des logs, le service semble bien lancé,mais il a été killé.

Dans un premier temps comment se comporte le programme si il est lancé
- dans une console avec le user pi ?

Code: Select all

[email protected]:~$ /usr/bin/python /home/pi/Documents/programme_final_boutons.py
- dans une console avec le user root ?

Code: Select all

[email protected]:~# /usr/bin/python /home/pi/Documents/programme_final_boutons.py
- par le service après le boot ?

Code: Select all

[email protected]:~# systemctl start programme_musical_start.service 
A+

fredoll
Posts: 214
Joined: Thu Jan 10, 2013 10:30 am

Re: Lancement d’un programme au démarrage - SystemD

Thu Jul 12, 2018 3:15 pm

Effectivement, bravo pour le post détaillé.
et Bravo pour la réponse :-)
Question: pourquoi exécuter avec l'utilisateur root ?
pi semble plus adapté pour écouter de la musique ...
à suivre ...

nikotinux
Posts: 668
Joined: Sat Feb 02, 2013 2:11 am

Re: Lancement d’un programme au démarrage - SystemD

Thu Jul 12, 2018 4:04 pm

le type doit être forking pour un script python.
simple c'est pour les programme écris spécifiquement pour être des deamons et qui se forkent eux même (très grossièrement !)

LuuB
Posts: 2
Joined: Thu Jun 07, 2018 8:51 am

Re: Lancement d’un programme au démarrage - SystemD

Fri Jul 13, 2018 8:09 am

Bonjour,

Merci beaucoup pour vos réponses, vous avez résolu mon problème !!

En effet, après des essais, l'utilisateur pi est suffisant !
J'ai donc modifié mon programme en changeant également le type en forking, et ça marche, c'est super !!

Ce sujet est donc résolu (très rapidement grâce à vous) :D
Dois-je le fermer ou quelque chose comme ça ? (c'est la première fois que je poste )

Bonne journée,

A+

Return to “Français”

Who is online

Users browsing this forum: epoch1970 and 2 guests