Bash片段用于杀死一个进程直到它死了?

前端之家收集整理的这篇文章主要介绍了Bash片段用于杀死一个进程直到它死了?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试编写一个强大的bash脚本,并在其中创建一个后台进程.在脚本结束时,我想要杀死它.我有它的PID.

我在想这样的事情

while [[ ps ef $PID ]] ; do
  kill $PID
  sleep 0.5
done

有什么建议更好吗?这种方法有任何可能的问题吗?

重复杀死进程的问题在于您在创建新进程时遇到了竞争条件.这并不是特别可能,但是当你正在睡觉时,过程可能会退出并且新进程会以相同的PID启动.

你为什么不得不反复杀死这个过程?如果是因为进程将退出,但在收到信号后退出可能需要一些时间,您可以使用wait:

kill $PID
 wait $PID

在一个理想的系统中,你永远不必重复杀死或发出kill -9 $PID.如果你必须这样做,你可能会考虑修复你正在运行的任何东西,所以你不必这样做.在此期间,你可能不会遇到竞争条件,你可以通过(比方说)在杀死进程之前检查/ proc / $PID /的时间戳来防范它.不过,这是糟糕的黑客行为.

原文链接:https://www.f2er.com/bash/385787.html

猜你在找的Bash相关文章