簡體   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