当我从bash脚本启动tcp服务器时,我需要在当前实例开始侦听之前杀死前一个实例(可能仍在侦听同一端口)
我可以使用类似于pkill<;以前的pid>。如果我理解正确,这只会将SIGTERM发送到目标pid。当pkill返回时,目标进程可能仍处于活动状态。有没有办法让pkill等待退出
不可以。您可以使用kill-0$PID编写一个循环。如果此调用失败($?-ne 0),则进程已终止:
而kill-0$PID;做
睡眠1
完成
(感谢qbolec的代码)
相关的:
- shell脚本中的kill-0$pid是做什么的