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 使用上乙個操作的結果作為下乙個命令的...