Process
殺死一組PID為負的程序
kill -TERM -PID
應該殺死 PID 及其所有子程序。
但這在 openSUSE 上不起作用,它總是告訴我,無論我使用什麼 PID,都沒有這樣的程序 -PID。
因此,如果此特定版本的 kill 不支持負 PID 選項,那麼殺死一組程序的最佳方法是什麼?
背景:
我有一個 shell 腳本正在執行。在腳本里面,我使用 wget 來下載東西。所以script是父程序,wget是子程序。我想用 kill -TERM -PID_OF_SCRIPT 殺死他們倆
它是說“沒有這樣的PID”還是有錯誤,就像這行得通嗎?
kill -TERM -- -GPID
另請注意,根據(強調我的)
"$$ … $$當給出“-n”形式的參數時,它表示一個程序組 $$ … $$"
男2:
"$$ … $$如果 pid 小於 -1,則將 sig 發送到ID 為 -pid 的程序組中的每個程序。 $$ … $$"
男人3:
"$$ … $$如果 pid 為負數,但不是 -1,則應將 sig 發送給程序組 ID等於 pid 絕對值的所有程序(不包括未指定的系統程序集),$$ … $$"
如,不是 PID,而是程序組 ID。
否則,也許你可以用/proc/玩得很開心$$ pid $$/狀態
ppid: awk '{gsub(/\([^)]+\)/,"_"); print $4}' /proc/3955/stat pgrp: awk '{gsub(/\([^)]+\)/,"_"); print $5}' /proc/3955/stat
pkill -TERM -g PGRP