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 grep
de se retourner.
Si some_process
est en cours d'exécution, alors "1"
fait écho, ce qui est bien. Cependant, s'il some_process
n'est pas en cours d'exécution, rien ne se répercute.
ps -Ccmd
pour rechercher des processus dont le nom de commande est "cmd", ce qui peut éliminer complètement legrep
.ps
définira le code de sortie sur une valeur non nulle s'il ne trouve pas de processus correspondant.