Arnaud_P a écrit 4 commentaires

  • # ça fonctionne... à moitié

    Posté par  . 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

    [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é.

  • # Réponse

    Posté par  . En réponse au message Quelques problèmes avec systemd.... Évalué à 1.

    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.

  • [^] # Re: Cycle

    Posté par  . En réponse au message Quelques problèmes avec systemd.... Évalué à 2.

    Merci à vous deux de m'aider :)

    Voici le fichier en question :

    #!/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 ;)

  • [^] # Re: Cycle

    Posté par  . 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

    [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.