kill 和killall 殺死程序

2022-05-22 06:30:07 字數 1729 閱讀 2145

1、根據程序ip檢視程序名

liunx中 通過程序名查詢程序pid可以通過 pidof  [程序名] 來查詢。

反過來 ,通過pid查詢程序名則沒有相關命令。但在linux根目錄中,有乙個/proc的vfs(虛擬檔案系統),系統當前執行的所有程序都對應於該目錄下的乙個 以程序pid命名的資料夾 ,其中存放程序執行的n多資訊。其中有乙個status檔案,cat顯示該檔案, 第一行的name 即為程序名。

例如程序名為stardict;

shell中分別根據pid獲取程序名、根據程序名獲取pid

1)查詢stardict的pid:pidof stardict

2)根據1)的pid查詢程序名: grep "name:" /proc/5884/status  

檢視該pid的所有資訊:cat /proc/5884/status

應用:kill乙個程序需要指定該程序的pid,所以我們需要先根據程序名找到pid,然後再kill;

killall命令則只需要給定程序名即可,應該是封裝了這個過程。

2、kill 和kill 命令應用

殺死程序最安全的方法是單純使用kill命令,不加修飾符,不帶標誌。

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

# kill -pid

注釋:標準的kill命令通常都能達到目的。終止有問題的程序,並把程序的資源釋放給系統。然而,如果程序啟動了子程序,只殺死父程序,子程序仍在執行,因此仍消耗資源。為了防止這些所謂的「殭屍程序」,應確保在殺死父程序之前,先殺死其所有的子程序。

*確定要殺死程序的pid或ppid

*以優雅的方式結束程序

# kill -l pid

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

*term訊號

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

# kill -term ppid

*killall命令

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

*停止和重啟程序

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

# kill -hup pid

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

*絕殺 kill -9 pid

同意的 kill -s sigkill

這個強大和危險的命令迫使程序在執行時突然終止,程序在結束後不能自我清理。危害是導致系統資源無法正常釋放,一般不推薦使用,除非其他辦法都無效。

當使用此命令時,一定要通過ps -ef確認沒有剩下任何殭屍程序。只能通過終止父程序來消除殭屍程序。如果殭屍程序被init收養,問題就比較嚴重了。殺死init程序意味著關閉系統。

如果系統中有殭屍程序,並且其父程序是init,而且殭屍程序占用了大量的系統資源,那麼就需要在某個時候重啟機器以清除程序表了。

kill 和killall 殺死程序

1 根據程序ip檢視程序名 liunx中 通過程序名查詢程序pid可以通過 pidof 程序名 來查詢。反過來 通過pid查詢程序名則沒有相關命令。但在linux根目錄中,有乙個 proc的vfs 虛擬檔案系統 系統當前執行的所有程序都對應於該目錄下的乙個 以程序pid命名的資料夾 其中存放程序執行...

殺死系統中的程序kill和killall命令

自csdn部落格 為什麼要殺死系統的程序?在windows下,開發時常遇到的問題是我們的整合開發工具卡死了,或者瀏覽器卡死了,常用的方式就是ctrl alt del進入任務管器結束任務,也就是把執行的程序殺掉。或者eclipse啟動tomcat沒有正常關閉,再次啟動時告訴你這個程序已經存在,阻止了新...

linux awk 和kill 批量殺死程序

ps ef grep check os.sh grep v grep awk xargs kill 9 2表示第2列,即程序號pid grep v grep是列出除開grep命令本身的程序,grep iboss2確認程序關鍵字 kill 9 強殺程序 xargs 使用上乙個操作的結果作為下乙個命令的...