C'est une bonne question parce que...
...il peut être difficile de trouver de la documentation sur ce signal spécial. Malgré ce que d'autres ont dit, la seule mention de ce signal en man 1 kill
dans les systèmes basés sur Debian est :
Les signaux particulièrement utiles sont HUP, INT, KILL, STOP, CONT et 0.
Pas particulièrement utile, surtout si vous ne savez pas déjà ce que fait le signal. Il n'est pas non plus répertorié par la sortie de kill -l
Vous ne le saurez donc que si vous le savez déjà.
Où trouver la documentation
Sur les systèmes Debian et Ubuntu, la sortie de la commande man 2 kill
dit, en partie :
Si sig vaut 0, alors aucun signal n'est envoyé, mais la vérification des erreurs est toujours effectuée ; cela peut être utilisé pour vérifier l'existence d'un ID de processus ou d'un ID de groupe de processus.
À quoi ça sert ?
Vous pouvez utiliser kill -0
pour vérifier si un processus est en cours d'exécution. Considérez ces exemples.
# Kill the process if it exists and accepts signals from
# the current user.
sleep 60 &
pid=$!
kill -0 $pid && kill $pid
# Check if a PID exists. When missing, this should result
# in output similar to:
# bash: kill: (6228) - No such process
# Exit status: 1
kill -0 $pid; echo "Exit status: $?"
Vous pouvez également utiliser kill -0
pour déterminer si l'utilisateur actuel a les permissions de signaler un processus donné. Par exemple :
# See if you have permission to signal the process. If not,
# this should result in output similar to:
# bash: kill: (15764) - Operation not permitted
# Exit status: 1
sudo sleep 60 &
kill -0 $!; echo "Exit status: $?"
3 votes
linux.die.net/man/1/kill
3 votes
Voir également le Variante Unix.SE de cette question qui diffère de
kill 0
(sans tiret), a expliqué aquí y aquí .