Je persévère, mais j'ai toujours des erreurs qui s'affichent lors de l'exécution de mon service DEMARRAGE qui ressemble désormais à ceci
[Unit]
Description=lancer le script dem.sh qui lance lin_guider au demarrage
After=multi-user.target
After=graphical.target
[Service]
Type=forking
RemainAfterExit=no
ExecStart=/home/pi/dem.sh
[Install]
WantedBy=multi-user.target
Lors de la commande systemctl status DEMARRAGE.service, j'obtiens ce résultat
● DEMARRAGE.service - lancer le script dem.sh qui lance LIN-GUIDER au demarrage
Loaded: loaded (/etc/systemd/system/DEMARRAGE.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2019-04-12 17:53:28 CEST; 28s ago
Process: 1251 ExecStart=/home/pi/dem.sh (code=exited, status=0/SUCCESS)
Main PID: 1252 (code=exited, status=1/FAILURE)
avr 12 17:53:28 raspberrypi systemd[1]: Starting lancer le script dem.sh qui lance LIN-GUIDER au demarrage...
avr 12 17:53:28 raspberrypi systemd[1]: Started lancer le script dem.sh qui lance LIN-GUIDER au demarrage.
avr 12 17:53:28 raspberrypi dem.sh[1251]: lin_guider: cannot connect to X server
avr 12 17:53:28 raspberrypi systemd[1]: DEMARRAGE.service: Main process exited, code=exited, status=1/FAILURE
avr 12 17:53:28 raspberrypi systemd[1]: DEMARRAGE.service: Unit entered failed state.
avr 12 17:53:28 raspberrypi systemd[1]: DEMARRAGE.service: Failed with result 'exit-code'.
Je sens que j'avance, au moins je sais que le script dem.sh se lance, maintenant !
Par contre, lorsque j'exécute le script "manuellement", tout va bien, lin_guider se lance correctement.
Il me semble donc que c'est ce fameux "X server" qui coince… Quelqu'un a-t-il une idée de comment résoudre ce problème, ou une piste à explorer ? Je n'ai rien trouvé de bien convaincant de mon côté.
Salut !
Donc, à vous lire je ne pourrais écrire que ceci :
[Unit]
Description=lancer le script dem.sh qui lance lin_guider au demarrage
After=multi-user.target
After=graphical.target
[Service]
Type=simple
ExecStart=/home/pi/dem.sh
[Install]
WantedBy=multi-user.target
car les logs seront fournis dans le journactl et par la commande status et que le shabang du fichier bash défini "qui" exécute le fichier.
J'ai relu encore un peu plus de doc, dont celle proposée par wismerhill et suite à ça, j'ai modifié deux choses :
- les permissions du service avec chmod 644 (rwx-r..-r..). Le fichier dem.sh a les droits en exécution pour tout les utilisateurs.
- sa place. J'ai lu que pour des projets perso, il valait mieux les faire dans /etc/systemd/system que dans /lib/systemd/system.
#!/bin/bash
#repfichierpython=/home/pi
#cd "${repfichierpython}"
#initialisations diverses
if [[ $1 == "set-time" ]]; then #Donc si je comprends bien, c'est là que ça bloque.
sudo gnome-control-center datetime
fi
# Utiliser sudo si necessaire
#sudo python3 demarrage.py >>demarrage.log 2>>demarrage.err
/home/pi/lin_guider/lin_guider_pack/lin_guider/lin_guider &
#cd - le & permet de lancer le processus et de contineur à faire quelque ch$
Tout ce qui est en commentaire est ce qui reste d'une ancienne tenative que je n'ai pas envie d'effacer pour ne pas faire deux fois les mêmes erreurs ;)
Ah ok ! Donc il me suffit de mettre After=multi-user.target en plus !
J'ai modifié mon service comme ceci
[Unit]
Description=lancer le script dem.sh qui lance lin_guider au demarrage
After=multi-user.target
After=graphical.target
[Service]
Type=idle
ExecStart=/bin/sh /home/pi/dem.sh > /home/pi/dem.log 2>&1
[Install]
WantedBy=multi-user.target
Je n'ai plus de message d'erreur au début : Merci :)
Par contre, lors de la commande systemctl status DEMARRAGE.service, systemd me dit que mon service est chargé, mais a été "tué" parcequ'il ne trouve pas le fichier mon fichier shell dans home/pi.
● DEMARRAGE.service - lancer le script dem.sh qui lance lin_guider au demarrage
Loaded: loaded (/lib/systemd/system/DEMARRAGE.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2019-04-12 02:58:29 CEST; 13min ago
Process: 591 ExecStart=/bin/sh /home/pi/dem.sh > /home/pi/dem.log 2>&1 (code=exited, status=0/SUCCESS)
Main PID: 591 (code=exited, status=0/SUCCESS)
avr 12 02:58:28 raspberrypi systemd[1]: Started lancer le script dem.sh qui lance lin_guider au demarrage.
avr 12 02:58:29 raspberrypi sh[591]: /home/pi/dem.sh: 8: /home/pi/dem.sh: [[: not found
Je viens de revérifier un énième fois qu'il y est bien, et je ne vois pas pourquoi il ne le trouve pas. Tout me semble pouratnt correct mais ne l'est manifestement pas… J'avoue que là, je suis complètemen perdu.
# ça fonctionne... à moitié
Posté par Arnaud_P . En réponse au message Quelques problèmes avec systemd.... Évalué à 1. Dernière modification le 16 avril 2019 à 15:40.
Bonjour !
Je persévère, mais j'ai toujours des erreurs qui s'affichent lors de l'exécution de mon service DEMARRAGE qui ressemble désormais à ceci
Lors de la commande
systemctl status DEMARRAGE.service
, j'obtiens ce résultatJe sens que j'avance, au moins je sais que le script dem.sh se lance, maintenant !
Par contre, lorsque j'exécute le script "manuellement", tout va bien, lin_guider se lance correctement.
Il me semble donc que c'est ce fameux "X server" qui coince… Quelqu'un a-t-il une idée de comment résoudre ce problème, ou une piste à explorer ? Je n'ai rien trouvé de bien convaincant de mon côté.
# Réponse
Posté par Arnaud_P . En réponse au message Quelques problèmes avec systemd.... Évalué à 1.
Salut !
Donc, à vous lire je ne pourrais écrire que ceci :
car les logs seront fournis dans le journactl et par la commande status et que le shabang du fichier bash défini "qui" exécute le fichier.
J'ai relu encore un peu plus de doc, dont celle proposée par wismerhill et suite à ça, j'ai modifié deux choses :
- les permissions du service avec
chmod 644
(rwx-r..-r..). Le fichier dem.sh a les droits en exécution pour tout les utilisateurs.- sa place. J'ai lu que pour des projets perso, il valait mieux les faire dans
/etc/systemd/system
que dans/lib/systemd/system
.[^] # Re: Cycle
Posté par Arnaud_P . En réponse au message Quelques problèmes avec systemd.... Évalué à 2.
Merci à vous deux de m'aider :)
Voici le fichier en question :
Tout ce qui est en commentaire est ce qui reste d'une ancienne tenative que je n'ai pas envie d'effacer pour ne pas faire deux fois les mêmes erreurs ;)
[^] # Re: Cycle
Posté par Arnaud_P . En réponse au message Quelques problèmes avec systemd.... Évalué à 1.
Ah ok ! Donc il me suffit de mettre
After=multi-user.target
en plus !J'ai modifié mon service comme ceci
Je n'ai plus de message d'erreur au début : Merci :)
Par contre, lors de la commande
systemctl status DEMARRAGE.service
, systemd me dit que mon service est chargé, mais a été "tué" parcequ'il ne trouve pas le fichier mon fichier shell danshome/pi
.Je viens de revérifier un énième fois qu'il y est bien, et je ne vois pas pourquoi il ne le trouve pas. Tout me semble pouratnt correct mais ne l'est manifestement pas… J'avoue que là, je suis complètemen perdu.