O problema em matar repetidamente um processo é que você tem uma condição de corrida com a criação do novo processo. Não é particularmente provável, mas é possível que o processo seja encerrado e um novo processo seja iniciado com o mesmo PID enquanto você estiver dormindo.
Por que você está tendo que matar repetidamente o processo? Se é porque o processo irá sair, mas pode levar algum tempo para sair depois de receber o sinal, você pode usar wait
:
kill $PID
wait $PID
Em um sistema ideal, você nunca precisará repetir um kill
ou um problema kill -9 $PID
. Se você precisar, considere corrigir o que está sendo executado para não precisar fazer isso. Enquanto isso, você provavelmente não atingirá a condição de corrida, e você pode se proteger contra isso (por exemplo) verificando o timestamp de / proc / $ PID / antes de matar o processo. Isso é mau hackiness, embora.