Shell
讓一個未提升的使用者成功殺死他的所有程序
情況
我已經建立了一個環境,使用者可以從多個端點登錄並使用
tmux
,screen
… 所以當他們結束工作時,他們可以註銷他們的 ssh 會話,這不會殺死任何終端多路復用器中保存的任何程序,他們可以做apkill -u ${USER}
或killall -u ${USER}
殺死他們的所有程序,因為我將函式包裝在一個名為fulllogout
.問題
執行
pkill -u ${USER}
orkillall -u ${USER}
時,殺死程序可以在殺死所有其他程序之前殺死自己或它的外殼,從而導致某些程序保持活動狀態。在不提高權限的情況下如何成功地做到這一點?
kill -TERM -1
會將 SIGTERM 發送到它有權這樣做的每個程序(pid 1 除外),同樣kill -KILL -1
會殺死所有可能的程序。這是在單個系統呼叫中完成的,因此不能在中途殺死自己。