如何一下子殺掉系統某使用者產生的所有程序

2025-07-27 01:06:10 字數 3062 閱讀 3752

在linux c中,如何在乙個父程序中呼叫kill殺死全部的子程序

1樓:梔子花開淡淡地

你是程式中呼叫kill函式,還是在命令列呼叫kill命令?

int kill(pid_t pid, int sig); 函式有兩個引數,乙個是程序號,乙個是訊號。

如果你輸入的程序號是正確的,而程序還在,則訊號有可能被該程序忽略了,不知道你傳送的訊號是幾號? 只有sigkill sigstop不能被忽略,其它都可以忽略或捕捉。

linux想寫乙個指令碼,通過給定的程序名稱殺掉這個程序和他的所有子程序,包括子程序的後續

2樓:藍之夏

你要的這個功能可以換成程序組的思路可以這樣寫。

ps -ef|grep $|head -1|awk ''|xargs -i {}kill -9 -{

照你原來的思路想把所有子程序都查出來反而麻煩。

3樓:神

這是不是問題, 用shell 和python都可以搞定, 如果需要的話, 可以幫忙寫乙個。同時 我還有很多的使用的shell和python指令碼。

希望可以幫到大家。

4樓:柒年

這個好難~ 你得找乙個專業程式設計的幫你,估計還是要收費的。

在 linux中如何結束由乙個父程序產生的所有子程序

5樓:網友

父程序未結束,子程序先結束,會產生殭屍程序。

子程序在呼叫exit命令結束自己的生命的時候,其實它並沒有真正的被銷燬,而是留下乙個稱為殭屍程序(zombie)的資料結構(系統呼叫 exit,它的作用是使程序退出,但也僅僅限於將乙個正常的程序變成乙個殭屍程序,並不能將其完全銷燬)。

即使是root身份kill -9也不能殺死殭屍程序。補救辦法是殺死殭屍程序的父程序(殭屍程序的父程序必然存在),殭屍程序成為"孤兒程序",過繼給1號程序init,init始終會負責清理殭屍程序。

殭屍程序的避免:

1) 父程序通過wait和waitpid等函式等待子程序結束,這會導致父程序掛起。

2) 如果父程序很忙,那麼可以用signal函式為sigchld安裝handler,因為子程序結束後, 父。

程序會收到該訊號,可以在handler中呼叫wait**。

3) 如果父程序不關心子程序什麼時候結束,那麼可以用signal(sigchld, sig_ign) 通知內。

核,自己對子程序的結束不感興趣,那麼子程序結束後,核心會**, 並不再給父程序傳送。

訊號。(4) 還有一些技巧,就是fork兩次,父程序fork乙個子程序,然後繼續工作,子程序fork一 個孫進。

程後退出,那麼孫程序被init接管,孫程序結束後, init會**。不過子程序的** 還要自己。

做。 建議你使用第三種方法,父程序直接忽略子程序的結束,留給核心作**處理。這樣就不。

會產生殭屍程序。

6樓:萬年長長青

linux 父程序關閉子程序。

7樓:網友

採用ps + grep + awk + pkill命令組合,可實現「結束由乙個父程序產生的所有子程序」,如:

父程序名為 parent_proc,可先根據程序名稱,得到程序pidps -ef |grep parent_proc|egrep -v grep | awk ''

根據父程序pid終止所有子程序pid,保留父程序pkill -9 -p $p_pid

完整指令碼:for p_pid in `ps -ef |grep parent_proc|egrep -v grep | awk ''`

dopkill -9 -p $p_pid

done有關各命令的詳情介紹請查閱相關參考資料。

8樓:網友

killall命令殺死同一程序組內的所有程序。它要指定要終止的程序的名稱,而非pid。

linux中,如果乙個程序的父程序被殺死了,其父程序的id將會變為什麼

9樓:網友

則子程序的父程序 id 變為 1,即 init fork()的。會產生乙個新的子程序, 其子程序會複製父程序的。

同時該子程序將會變為殭屍程序。

10樓:愛笑的七小沐

如果父程序先退出,子程序會變成孤兒程序,並交給程序號為1的託管;如果子程序退出,但是父程序沒有呼叫wait或者waitpid對子程序的狀態進行**,那麼子程序還存在於系統中,並仍然佔用乙個程序號,此時此程序就會變成殭屍程序。樓主殭屍程序和孤兒程序概念混淆。

如何完全殺掉帶鎖的程序並釋放資源

11樓:蘇小素

首先使用ps -ef命令確定要殺死程序的pid,然後輸入以下命令:

# kill -pid

註釋:標準的kill命令通常都能達到目的。終止有問題的程序,並把程序的資源釋放給系統。

然而,如果程序啟動了子程序,只殺死父程序,子程序仍在執行,因此仍消耗資源。為了防止這些所謂的「殭屍程序」,應確保在殺死父程序之前,先殺死其所有的子程序。

確定要殺死程序的pid或ppid

# ps -ef | grep httpd

結束程序。# kill -l pid

l選項告訴kill命令用好像啟動程序的使用者已登出的方式結束程序。當使用該選項時,kill命令也試圖殺死所留下的子程序。但這個命令也不是總能成功--或許仍然需要先手工殺死子程序,然後再殺死父程序。

給父程序傳送乙個term訊號,試圖殺死它和它的子程序。

# kill -term ppid

killall命令。

killall命令殺死同一程序組內的所有程序。其允許指定要終止的程序的名稱,而非pid。

# killall httpd

停止和重啟程序。

有時候只想簡單的停止和重啟程序。如下:

# kill -hup pid

該命令讓linux和緩的執行程序關閉,然後立即重啟。在配置應用程式的時候,這個命令很方便,在對配置檔案修改後需要重啟程序時就可以執行此命令。

一下子開心一下子發火是什麼成語,形容一下子從不開心到很開心的成語是什麼

喜怒無常 x n w ch ng 解釋 一會兒高興,一會兒生氣。形容態度多變。出處 呂氏春秋 回 誣徒 答 喜怒無處,言談日易。結構 主謂式。用法 含貶義 多用於人 也可用於動物或其他物。一般作謂語 賓語。正音 常 不能讀作 c n 辨形 常 不能寫作 長 近義詞 喜怒哀樂 喜形於色 反義詞 一成不...

請用一下子造句,謝謝,用「一下子」造句

自己的考試成績出來了,結果發現自己是全班第一名,我連忙看了看我的成績,結果我一下子高興壞了 我剛扶起了摔倒的老人,他剛站起來一下子抓住我說,賠錢 天氣多變,一下子晴空萬里,一下子狂風暴雨!媽媽做家務很麻利,一下子就做完了家務!她的臉一下子紅了,紅得像一朵含苞的石榴花。一下子,雨就像斷了線的珠子,一個...

戒菸別一下子戒乾淨,一下子戒菸好嗎

可以試試勁克電子煙代替吸菸 滿足吸菸的口感,同時可以控制煙油濃度來慢慢戒掉吸菸的習慣 戒菸一下子戒掉好不好 沒有不好,只有好處,身體通過代謝調整會慢慢修復菸草帶給你身體上的傷害。慢慢戒菸好還是一下子戒菸好 戒菸妙方 一小塊白豆腐,加大約3匙紅糖,拌著吃,挺管用的,我爸爸就是這樣戒掉的,好幾個月都不抽...