Comment obtenir uniquement l'ID de processus pour un nom de processus spécifié sous Linux?
ps -ef|grep Java
test 31372 31265 0 13:41 pts/1 00:00:00 grep Java
Sur la base de l'identifiant du processus, je vais écrire une logique. Alors, comment obtenir uniquement l'ID de processus pour un nom de processus spécifique.
Exemple de programme:
PIDS= ps -ef|grep Java
if [ -z "$PIDS" ]; then
echo "nothing"
else
mail [email protected]
fi
Vous pouvez utiliser:
ps -ef | grep '[j]ava'
Ou si pgrep
est disponible, il vaut mieux utiliser:
pgrep -f Java
Vous pouvez diriger votre sortie vers awk pour n’imprimer que le PID. Par exemple:
ps -ef | grep nginx | awk '{print $2}' 9439
Utilisez ceci: ps -C <name> -o pid=
Cette commande ignore le processus grep et renvoie simplement le PID:
ps -ef | grep -v grep | grep Java | awk '{print $2}'
pourquoi ne pas simplement pidof?
pidof <process_name>
il retournera une liste de pids correspondant au nom du processus