J'ai écrit un script bash pour vérifier si un processus est en cours d'exécution. Cela ne fonctionne pas car la commande ps retourne toujours le code de sortie 1. Lorsque j'exécute la commande ps depuis la ligne de commande, le $? est correctement défini, mais dans le script, il est toujours 1. Toute idée?
#!/bin/bash
SERVICE=$1
ps -a | grep -v grep | grep $1 > /dev/null
result=$?
echo "exit code: ${result}"
if [ "${result}" -eq "0" ] ; then
echo "`date`: $SERVICE service running, everything is fine"
else
echo "`date`: $SERVICE is not running"
fi
Version Bash: GNU bash, version 3.2.25 (1) -release (x86_64-redhat-linux-gnu)