Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bash script test état d'un service

Bash script test état d'un service

Sujet résolu
    12 septembre 2019 à 19:03:24

    Bonjour,

    J'ai fait un script bash qui se veut tester l'état de différents services.

    declare -a Status
    	
    for srvc in "${Services[@]}"
        do
            Status["$srvc"]=`systemctl is-active "$srvc"`
    		
    	if [ ${Status["$srvc"]} == "active" ]
    	    then
    		echo "OK"
    	    else
    		echo "KO"
    	fi
    done

    Le script fonctionne bien si la réponse d'un service est "active" mais il se plante sur la ligne 

    Status["$srvc"]=`systemctl is-active "$srvc"`

    si le service est "inactive". C'est à dire que le script s'arrête sans aller à l'instruction suivante (j'ai tester en plaçant un simple echo derrière).

    Si je fais la même commande non pas dans un script mais en ligne de commande alors la réponse est correcte.

    Si quelqu'un peut m'expliquer pourquoi le script s'arrête et éventuellement ce qu'il faudrait faire.

    D'avance merci.

    A+


    • Partager sur Facebook
    • Partager sur Twitter
      12 septembre 2019 à 19:42:46

      salut,

      parce qu'il y a un set -e, ou équivalent en début de script (bash -e) positionné, ce qui [t]ermine immédiatement si une commande s'arrête avec un code de retour non nul.

      ??

      -
      Edité par dantonq 12 septembre 2019 à 19:42:59

      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

        12 septembre 2019 à 20:10:29

        Moi je dirai 2 choses : Bravo et Merci.

        Le script fait presque 500 lignes et j'avais complètement zappé l'instruction en début de script.

        Je passe en résolu.

        Bye

        -
        Edité par monkey3d 12 septembre 2019 à 20:18:20

        • Partager sur Facebook
        • Partager sur Twitter

        Bash script test état d'un service

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown