Pas sûr que ce soient les seules raisons, mais voici ma perforation :
En fonction de la manière dont vous écrivez un script shell pour tuer le processus souhaité, vous pourriez finir par tuer le PID de kill avant qu'il ne tue votre cible, prenons par exemple mondémon :
kill -9 `ps ax | grep mydaemon | awk '{ print $1 }'`
A) Tuer en envoyant le signal SIGPIPE Dans un système Linux 32 bits, le PID est généralement un entier sur 15 bits, les débordements se produisent souvent, il y a une assez grande chance que les PIDs du grep ou awk apparaissent avant celui de mon démon. Dans les systèmes 64 bits, les numéros de PID sont généralement sur 22 bits, il est plus de 100 fois moins probable que cela se produise, mais reste assez faisable.
En tuant l'un de vos pipes, vous recevrez un signal SIGPIPE et en général cela signifie également la mort, donc kill serait tué avant de tuer mon démon, rendant la tentative de kill un échec.
B) Tuer d'autres PIDs De plus, imaginons que vous aviez vi /etc/mydaemon/mydaemon.conf en cours d'exécution, ce PID pourrait également être tué, sans parler des processus d'autres utilisateurs étant donné que vous émettez très probablement une telle commande en tant que root.
C) C'est un simple verrou de type unix -> Pas de code/daemon supplémentaire requis. Les fichiers PID offrent un moyen assez simple de créer des verrous gérables par l'utilisateur pour vous empêcher de lancer involontairement un démon deux fois.