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