J'essaie de vérifier si un processus (supposons qu'il s'appelle some_process) s'exécute sur un serveur. Si c'est le cas, alors écho 1, sinon écho 0.
C'est la commande que j'utilise mais elle ne fonctionne que partiellement (plus d'informations ci-dessous). Notez que je dois écrire le script sur une seule ligne.
ps aux | grep some_proces[s] > /tmp/test.txt && if [ $? -eq 0 ]; then echo 1; else echo 0; fi
Note: Le [s]en some_proces[s]est d'empêcher grepde se retourner.
Si some_processest en cours d'exécution, alors "1"fait écho, ce qui est bien. Cependant, s'il some_processn'est pas en cours d'exécution, rien ne se répercute.
ps -Ccmdpour rechercher des processus dont le nom de commande est "cmd", ce qui peut éliminer complètement legrep.psdéfinira le code de sortie sur une valeur non nulle s'il ne trouve pas de processus correspondant.