來自kill的man
:
如果 pid 為 0,則 sig 應傳送到其進程組 ID 等於發送者進程組 ID 且有權發送訊號的所有進程(不包括一組未指定的系統進程)
到底是什麼for which the process has permission to send a signal
意思?如何檢查哪些進程會收到訊號?
例如,kill -9 0
殺死當前啟動的所有進程終端和終端本身。或是還有別的什麼嗎?
答案1
到底是什麼
for which the process has permission to send a signal
意思?
它的答案就在線上幫助頁:
對於有權發送訊號的進程,它必須具有特權,或者發送進程的真實或有效用戶 ID 必須等於目標進程的真實或已儲存的設定用戶 ID。如果是訊號控制當發送和接收進程屬於同一會話時就足夠了。
如何檢查哪些進程會收到訊號?
您可以遍歷進程列表並嘗試使用訊號 0(空運行訊號)殺死每個進程。這將告訴您是否有權發送真實信號。