透過kill 和pid=0 發送訊號

透過kill 和pid=0 發送訊號

來自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(空運行訊號)殺死每個進程。這將告訴您是否有權發送真實信號。

相關內容