繁体   English   中英

终止进程并等待进程退出

[英]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

(对qbolec的代码赞不绝口

有关:

使用wait (bash builtin)等待进程完成:

 pkill <previous_pid>
 wait <previous_pid>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM