1. 程式人生 > 其它 >linux利用shell監聽某個程式是否完成

linux利用shell監聽某個程式是否完成

技術標籤:linuxlinuxubuntu

應用場景:希望檢測某個程式是否已經執行完成,一旦完成,則執行其他程式。
(1)首先通過ps u檢視當前使用者下的所有程式的程序,選擇你要監聽的程序號,比如9160。
ps u
注意:ps a是檢視當前使用者所執行的所有程式程序,不包括其他使用者;ps aux是檢視所有程序,包括其他使用者。
(2)編寫shell程式碼,實現監聽

flag=1
result=1
while [ "$flag" -eq 1 ]
do
    sleep 1s
    PID=9160
    PID_EXIST=$(ps u | awk '{print $2
}'
| grep -w $PID)
if [ ! $PID_EXIST ]; then echo "process is finished" flag=0 fi done 在此後新增希望執行的程式,比如bash..., python ...等等。

awk '{print $2}'表示取出第二個欄位,也就是程序號欄位;
grep -w $PID 表示精確匹配所需要監聽的程序號;
PID_EXIST表示匹配到就返回pid號,說明程式還在執行。匹配不到就沒有返回值,說明程式已經完成,退出迴圈。