Ⅰ linux kill不能殺死shell腳本死循環
使用ps aux|grep 」腳本名「這種方式查找時,查看grep 」腳本「以外行的PID。
ps -ef 能比較直觀顯示進程PID、PPID(當前PID的父進程),程序名(最後一列)。
注意:你殺的應該是運行腳本時命令對應的PID,不是腳本里啟動的額外程序的PID,否則可能產生僵死進程。
Ⅱ linux鐖惰繘紼嬪瓙榪涚▼linux鐖惰繘紼嬪瓙榪涚▼
linuxkill鏉涓嶆帀榪涚▼錛
linux榪涚▼kill涓嶆帀
涓鏄榪涚▼宸茬粡鎴愪負鍍墊昏繘紼,褰撳畠鐨勭埗榪涚▼灝嗗畠鍥炴敹鎴栧皢瀹冪殑鐖惰繘紼媖ill鎺夊嵆鍙鍦╬s杈撳嚭鐪嬩笉鍒頒簡;
浜屾槸榪涚▼姝e勫湪鍐呮牳鐘舵佷腑,Linux榪涚▼榪愯屾椂鍒嗗唴鏍稿拰鐢ㄦ埛涓ょ嶇姸鎬,褰撹繘紼嬭繘鍏ュ唴鏍哥姸鎬佸悗,浼氬睆钄芥墍鏈変俊鍙,鍖呮嫭SIGKIL,鎵浠ヨ繖涓鏃跺檏ill-9涔熷彉寰楁棤鏁堜簡銆
linux涓嬩粈涔堝彨鐖惰繘紼嬪拰瀛愯繘紼嬶紵
1銆佺埗榪涚▼
鎸囧凡鍒涘緩涓涓鎴栧氫釜瀛愯繘紼嬬殑榪涚▼銆傚湪UNIX閲岋紝闄や簡榪涚▼0浠ュ栫殑鎵鏈夎繘紼嬮兘鏄鐢卞叾浠栬繘紼嬩嬌鐢ㄧ郴緇熻皟鐢╢ork鍒涘緩鐨勶紝榪欓噷璋冪敤fork鍒涘緩鏂拌繘紼嬬殑榪涚▼鍗充負鐖惰繘紼嬶紝鑰岀浉瀵瑰簲鐨勪負鍏跺壋寤哄嚭鐨勮繘紼嬪垯涓哄瓙榪涚▼錛屽洜鑰岄櫎浜嗚繘紼0浠ュ栫殑榪涚▼閮藉彧鏈変竴涓鐖惰繘紼嬶紝浣嗕竴涓榪涚▼鍙浠ユ湁澶氫釜瀛愯繘紼嬨
2銆佸瓙榪涚▼
鎸囩殑鏄鐢卞彟涓榪涚▼錛堝瑰簲縐頒箣涓虹埗榪涚▼錛夋墍鍒涘緩鐨勮繘紼嬨傚瓙榪涚▼緇ф壙浜嗗瑰簲鐨勭埗榪涚▼鐨勫ぇ閮ㄥ垎灞炴э紝濡傛枃浠舵弿榪扮︺傚湪Unix涓錛屽瓙榪涚▼閫氬父涓虹郴緇熻皟鐢╢ork鐨勪駭鐗┿傚湪姝ゆ儏鍐典笅錛屽瓙榪涚▼涓寮濮嬪氨鏄鐖惰繘紼嬬殑鍓鏈錛岃屽湪榪欎箣鍚庯紝鏍規嵁鍏蜂綋闇瑕侊紝瀛愯繘紼嬪彲浠ュ熷姪exec璋冪敤鏉ラ摼寮忓姞杞藉彟涓紼嬪簭銆
linux鎬庝箞紜璁よ繘紼嬫槸璋佽皟鐢錛
閫氳繃pid錛宲s-lA鍜宲saxjf閮借兘鐪嬪埌鐖惰繘紼嬬殑PID錛坧pid錛夛紝緙栫▼鐨勮瘽錛屽彲鐢╣etppid鍑芥暟
Ⅲ linux鏉姝昏繘紼嬪懡浠killlinux鏉姝昏繘紼
linuxkill鏉涓嶆帀榪涚▼錛
linux榪涚▼kill涓嶆帀
涓鏄榪涚▼宸茬粡鎴愪負鍍墊昏繘紼,褰撳畠鐨勭埗榪涚▼灝嗗畠鍥炴敹鎴栧皢瀹冪殑鐖惰繘紼媖ill鎺夊嵆鍙鍦╬s杈撳嚭鐪嬩笉鍒頒簡;
浜屾槸榪涚▼姝e勫湪鍐呮牳鐘舵佷腑,Linux榪涚▼榪愯屾椂鍒嗗唴鏍稿拰鐢ㄦ埛涓ょ嶇姸鎬,褰撹繘紼嬭繘鍏ュ唴鏍哥姸鎬佸悗,浼氬睆钄芥墍鏈変俊鍙,鍖呮嫭SIGKIL,鎵浠ヨ繖涓鏃跺檏ill-9涔熷彉寰楁棤鏁堜簡銆
濡備綍kill鏉鎺塴inux緋葷粺涓鐨勫兊灝竏efunct榪涚▼錛
鎵懼埌璇defunct鍍靛案榪涚▼鐨勭埗榪涚▼錛屽皢璇ヨ繘紼嬬殑鐖惰繘紼嬫潃鎺夛紝鍒欐defunct榪涚▼灝嗚嚜鍔ㄦ秷澶
linux濡備綍鏌ヨ繘紼嬶紝鏉榪涚▼錛岄噸鍚榪涚▼錛
鏌ユ壘榪涚▼ps-ef|grep-vgrep|grep"XXXXX"鏉榪涚▼kill-9`ps-ef|grep-vgrep|grepXXXXX|awk'{print$2}'`閲嶈搗serviceXXXXrestart
濡備綍鏉鎺塋inux涓鐨勫兊灝歌繘紼嬶紵
1銆佷嬌鐢╰op鍛戒護灝卞彲浠ユ煡鐪嬪埌鍍靛案榪涚▼銆
2銆佹煡鐪嬪叿浣撹繘紼媝id#ps-A-ostat,ppid,pid,cmd|grep-e"^"璇存槑錛氫笉鏄鏌ヤ笉鍑哄兊灝歌繘紼嬶紝鏄鍥犱負鎴戦噸鍚浜嗙郴緇燂紝娌℃湁鍍靛案榪涚▼銆
3銆佹潃姝誨兊灝歌繘紼#kill-9pid鍙
Ⅳ 【kill】kill -9 殺不死的進程處理辦法
kill -9 發送SIGKILL信號給進程將其終止,但對於以下兩種情況不適用:
1.該進程是僵屍進程(STAT z),此時進程已經釋放所有的資源,但是沒有被父進程釋放。
僵屍進程要等到父進程結束,或者重啟系統才可以被釋放。
2.進程處於「內核態」,並且在等待不可獲得的資源,處於「內核態 」的資源默認忽略所有信號,只能重啟系統解決。
進程在Linux 中會處於兩種狀態,即用戶態和內核態。只有處於用戶態的進程才可以用「kill」命令將其終止
一般可以用top命令發現動態進程表,其中zombie是僵屍進程:
用ps和grep命令尋找僵屍進
# ps -A -o stat,ppid,pid,cmd
# ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'
命令註解:
-A 參數列出所有進程
-o 自定義輸出欄位
我們設定顯示欄位為 stat(狀態), ppid(進程父id), pid(進程id),cmd(命令)這四個參數 因為狀態為 z或者Z的進程為僵屍進程。
我們使用grep抓取stat狀態為zZ進程,使用 kill -HUP ${pid} 來殺掉這個僵屍進程。
Ⅳ Linux裡面kill -9的含義是什麼
一般來說Linux里邊的kill是殺死進程的意思。而加了一個-9。是表示無條件的殺死進程。所以這個命令的意思就是,不管這個進程正在執行還是已經結束,都要殺死掉它。
Ⅵ 一個shell腳本,kill進程kill -9 ${PROC_ID}的時候沒有立即kill
你是說找到系統中所有名字為sleep的進程ID,並且殺死它們,是嗎? 我沒有LINUX平台測試,我使用的HP-UX,下面的代碼你可能需要適當調整才可以使用。 下面的命令可以找出系統中的所有進程: ps -e 要查找所有名稱為sleep的經常,有的系統可以給ps使用-n參數,例如: ps -n sleep 但是通用一點的辦法是在ps -e的結果裡面grep,下面的命令即可: ps -e | grep sleep 前面的ps命令輸出了進程的ID、終端等信息,如果只需要ID內容,可以使用cut -c來獲取,例如: ps -e | cut -c1-6 獲取上面輸出的所有PID到內存變數的shell語句是: pids=`ps -e | cut -c1-6`