Partage
  • Partager sur Facebook
  • Partager sur Twitter

recuperer le pid d'une commande java executée

    30 novembre 2020 à 15:10:28

    Salut,

    J'ai un script (.sh) qui lance une commande java. J'aimerais pouvoir récupérer le pid de la commande a son lancement si c'est possible. Est ce faisable ?

    le code:

    Le code:
    start_module() {
       echo -e "\033[0;37m$(date +"%Y-%m-%d %H:%M:%S %s") \033[0;35m+\033[0;37m START_MODULE  - START ${MODULE} instance ${INSTANCE_NUMBER} WITH PID ${MODULE_PID}"
       echo "$(date +"%Y-%m-%d %H:%M:%S %s") : START_MODULE  - Starting ${MODULE} instance ${INSTANCE_NUMBER} WITH PID ${MODULE_PID}" >> ${CONSOLE} 2>&1
       tput sgr0
       cd ${PATH}
       ${JVM_COMMAND} >> ${CONSOLE} 2>&1
       echo $! >> ${CONSOLE} 2>&1
       export ERRORLEVEL=$?
       if [ "${ERRORLEVEL}" -eq "0" ]; then    
          echo -e "\033[0;37m$(date +"%Y-%m-%d %H:%M:%S %s") \033[0;35m+\033[0;37m START_MODULE  - END ${MODULE} instance ${INSTANCE_NUMBER} WITHOUT ERROR" 
          echo "$(date +"%Y-%m-%d %H:%M:%S %s") : START_MODULE  - ${MODULE} instance ${INSTANCE_NUMBER} END WITH (PID ${MODULE_PID})" >> ${CONSOLE} 2>&1
          tput sgr0
          return 0
       else
          echo -e "\033[0;37m$(date +"%Y-%m-%d %H:%M:%S %s") \033[0;35m+\033[0;37m START_MODULE  - ALERT - END ${MODULE} instance ${INSTANCE_NUMBER} WITH ERRORLEVEL = ${ERRORLEVEL}"
          echo -e "\033[0;37m$(date +"%Y-%m-%d %H:%M:%S %s") \033[0;35m+\033[0;37m START_MODULE  - Command was ${JVM_COMMAND}"
          tput sgr0
          echo "$(date +"%Y-%m-%d %H:%M:%S %s") : START_MODULE  - ALERT - END ${MODULE} instance ${INSTANCE_NUMBER} WITH ERRORLEVEL = ${ERRORLEVEL}" >> ${CONSOLE} 2>&1
          echo "$(date +"%Y-%m-%d %H:%M:%S %s") : START_MODULE  - Command was ${JVM_COMMAND}" >> ${VX_CONSOLE} 2>&1
          echo "$(date +"%Y-%m-%d %H:%M:%S %s") : WARNING
       
          Module ${MODULE} instance ${INSTANCE_NUMBER} : Ending cycle with error = ${ERRORLEVEL}
          Launching command  was : ${JVM_COMMAND}" | mail -s "WARNING: ${MODULE} instance ${INSTANCE_NUMBER}" ${ALERTE}
          return 1
       fi
    }



    merci bcp

    -
    Edité par Pedr0 30 novembre 2020 à 15:14:56

    • Partager sur Facebook
    • Partager sur Twitter
      30 novembre 2020 à 16:34:45

      petites remarques sur ton code :

      • les noms des variables utilisateurs doivent ne pas être tout en majuscules.
        seules les variables environnementales (IFS, HOME, PWD...) sont, par convention, elles, tout en majuscules.
        il y a donc un risque d'écrasement de ces dernières.
      • les accolades signalent des Développements de paramètres particuliers (${var:deb:long}, par exemple), ou servent lorsque du texte est accolé à ce nom.sinon, c'est inutile, et ça surcharge le code en l'alourdissant visuellement.
      • $? après un echo est rarement faux. :)

      Pour récupérer le PID d'un processus, qui n'est pas en arrière plan (c'est à ça que sert $! : récupérer le PID du processus  mis en arrière plan le plus récemment), on peut passer par différents outils : pgrep, pidof, ps

      -
      Edité par dantonq 30 novembre 2020 à 17:50:49

      • Partager sur Facebook
      • Partager sur Twitter

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

      recuperer le pid d'une commande java executée

      × 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