[英]Kill a process and wait for the process to exit
当我从我的bash脚本启动我的tcp服务器时,我需要在当前实例开始侦听之前杀死前一个实例(可能仍在侦听同一个端口)。
我可以使用像pkill <previous_pid>
这样的东西。 如果我理解正确,这只会将SIGTERM
发送到目标pid。 当pkill
返回时,目标进程可能仍然存在。 有没有办法让pkill
等到它退出?
不。你可以做的是用kill -0 $PID
写一个循环。 如果此调用失败( $? -ne 0
),则该进程已终止:
while kill -0 $PID; do
sleep 1
done
有关:
使用wait
(bash builtin)等待进程完成:
pkill <previous_pid>
wait <previous_pid>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.