vendredi 30 janvier 2015

How can I kill a process and be sure the PID hasn't been reused


Suppose, for example, you have a shell script similar to:



longrunningthing &
p=$!
echo Killing longrunningthing on PID $p in 24 hours
sleep 86400
echo Time up!
kill $p


Should do the trick, shouldn't it? Except that the process may have terminated early and its PID may have been recycled, meaning some innocent job get a bomb in its signal queue instead. In practice this possibly does matter, but its worrying me nonetheless. Hacking longrunningthing to drop dead by itself, or keep/remove its PID on the FS would do but I'm thinking of the generic situation here.



Aucun commentaire:

Enregistrer un commentaire