Linux中kill,pkill,killall和xkill命令汇总讲解
生活随笔
收集整理的這篇文章主要介紹了
Linux中kill,pkill,killall和xkill命令汇总讲解
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
終止一個(gè)進(jìn)程或終止一個(gè)正在運(yùn)行的程式,一般是通過(guò) kill 、killall、pkill、xkill 等進(jìn)行。比如一個(gè)程式已死掉,但又不能退出,這時(shí)就應(yīng)該考慮應(yīng)用這些工具。
另外應(yīng)用的場(chǎng)合就是在服務(wù)器管理中,在不涉及數(shù)據(jù)庫(kù)服務(wù)器程式的父進(jìn)程的停止運(yùn)行,也能用這些工具來(lái)終止。為什么數(shù)據(jù)庫(kù)服務(wù)器的父進(jìn)程不能用這些工具殺死呢?原因非常簡(jiǎn)單,這些工具在強(qiáng)行終止數(shù)據(jù)庫(kù)服務(wù)器時(shí),會(huì)讓數(shù)據(jù)庫(kù)產(chǎn)生更多的文件碎片,當(dāng)碎片達(dá)到一定程度的時(shí)候,數(shù)據(jù)庫(kù)就有崩潰的危險(xiǎn)。比如mysql
服務(wù)器最佳是按其正常的程式關(guān)閉,而不是用pkill mysqld 或killall mysqld這樣危險(xiǎn)的動(dòng)作;當(dāng)然對(duì)于占用資源過(guò)多的數(shù)據(jù)庫(kù)子進(jìn)程,我們應(yīng)該用kill 來(lái)殺掉。
1、 kill
kill的應(yīng)用是和ps 或pgrep 命令結(jié)合在一起使用的;
kill 的用法:
kill [信號(hào)代碼]? ?進(jìn)程ID
注:信號(hào)代碼能省略;我們常用的信號(hào)代碼是 -9 ,表示強(qiáng)制終止;
例如:
[vivian@localhost vivian]$ ps -auxf | grep httpd
vivian?? 27005? 0.0? 0.0? 4928? 680 pts/0??? S??? 09:42?? 0:00? |?????????? \_ grep httpd
root????? 1742? 0.0? 0.0 19588? 560 ???????? S??? Nov24?? 0:00 /var/email/apache/bin/httpd -k start
nobody??? 1744? 0.0? 0.0 11304? 540 ???????? S??? Nov24?? 0:03? \_ /var/email/apache/bin/httpd -k start
nobody?? 23055? 0.0? 2.3 327748 24232 ?????? S??? Nov26?? 1:43? \_ /var/email/apache/bin/httpd -k start
nobody?? 23087? 0.0? 2.4 328252 24832 ?????? S??? Nov26?? 1:38? \_ /var/email/apache/bin/httpd -k start
nobody?? 10607? 0.0? 2.3 327144 24064 ?????? S??? Nov27?? 1:12? \_ /var/email/apache/bin/httpd -k start
我們看上面例子中的第二列,就是進(jìn)程PID的列,其中1742是httpd服務(wù)器的父進(jìn)程,剩下列出的進(jìn)程都是1742的子進(jìn)程;如果我們殺掉父進(jìn)程1742的話,其下的子進(jìn)程也會(huì)跟著死掉;
[vivian@localhost vivian]$ kill 1742
[vivian@localhost vivian]$ps -auxf | grep httpd //已經(jīng)找不到httpd了
對(duì)于僵尸進(jìn)程,能用kill -9 來(lái)強(qiáng)制終止退出;
比如一個(gè)程式已完全死掉,如果kill 不加信號(hào)強(qiáng)度是沒(méi)有辦法退出,最佳的辦法就是加信號(hào)強(qiáng)度 -9?
2 、killall
killall 通過(guò)程式的名字,直接殺死所有進(jìn)程,咱們簡(jiǎn)單說(shuō)一下就行了。
用法:killall 正在運(yùn)行的程式名
killall 也和ps或pgrep 結(jié)合使用,比較方便;通過(guò)ps或pgrep 來(lái)查看哪些程式在運(yùn)行;
舉例:
[vivian@localhost vivian]$ pgrep -l? httpd
1742 httpd
1744 httpd
23055 httpd
23087 httpd
10607 httpd
[vivian@localhost vivian]$ killall httpd
3、 pkill
pkill 和killall 應(yīng)用方法差不多,也是直接殺死運(yùn)行中的程式;如果你想殺掉單個(gè)進(jìn)程,請(qǐng)用kill 來(lái)殺掉。
應(yīng)用方法:
#pkill??? 正在運(yùn)行的程式名
4 、xkill
xkill 是在桌面用的殺死圖像界面的程式。比如當(dāng)firefox 出現(xiàn)崩潰不能退出時(shí),點(diǎn)鼠標(biāo)就能殺死firefox 。當(dāng)xkill運(yùn)行時(shí)出來(lái)和個(gè)人腦骨的圖標(biāo),哪個(gè)圖像程式崩潰一點(diǎn)就OK了。如果你想終止xkill ,就按右鍵取消;
xkill 調(diào)用方法:
[vivian@localhost vivian]$ xkill
另外應(yīng)用的場(chǎng)合就是在服務(wù)器管理中,在不涉及數(shù)據(jù)庫(kù)服務(wù)器程式的父進(jìn)程的停止運(yùn)行,也能用這些工具來(lái)終止。為什么數(shù)據(jù)庫(kù)服務(wù)器的父進(jìn)程不能用這些工具殺死呢?原因非常簡(jiǎn)單,這些工具在強(qiáng)行終止數(shù)據(jù)庫(kù)服務(wù)器時(shí),會(huì)讓數(shù)據(jù)庫(kù)產(chǎn)生更多的文件碎片,當(dāng)碎片達(dá)到一定程度的時(shí)候,數(shù)據(jù)庫(kù)就有崩潰的危險(xiǎn)。比如mysql
服務(wù)器最佳是按其正常的程式關(guān)閉,而不是用pkill mysqld 或killall mysqld這樣危險(xiǎn)的動(dòng)作;當(dāng)然對(duì)于占用資源過(guò)多的數(shù)據(jù)庫(kù)子進(jìn)程,我們應(yīng)該用kill 來(lái)殺掉。
1、 kill
kill的應(yīng)用是和ps 或pgrep 命令結(jié)合在一起使用的;
kill 的用法:
kill [信號(hào)代碼]? ?進(jìn)程ID
注:信號(hào)代碼能省略;我們常用的信號(hào)代碼是 -9 ,表示強(qiáng)制終止;
例如:
[vivian@localhost vivian]$ ps -auxf | grep httpd
vivian?? 27005? 0.0? 0.0? 4928? 680 pts/0??? S??? 09:42?? 0:00? |?????????? \_ grep httpd
root????? 1742? 0.0? 0.0 19588? 560 ???????? S??? Nov24?? 0:00 /var/email/apache/bin/httpd -k start
nobody??? 1744? 0.0? 0.0 11304? 540 ???????? S??? Nov24?? 0:03? \_ /var/email/apache/bin/httpd -k start
nobody?? 23055? 0.0? 2.3 327748 24232 ?????? S??? Nov26?? 1:43? \_ /var/email/apache/bin/httpd -k start
nobody?? 23087? 0.0? 2.4 328252 24832 ?????? S??? Nov26?? 1:38? \_ /var/email/apache/bin/httpd -k start
nobody?? 10607? 0.0? 2.3 327144 24064 ?????? S??? Nov27?? 1:12? \_ /var/email/apache/bin/httpd -k start
我們看上面例子中的第二列,就是進(jìn)程PID的列,其中1742是httpd服務(wù)器的父進(jìn)程,剩下列出的進(jìn)程都是1742的子進(jìn)程;如果我們殺掉父進(jìn)程1742的話,其下的子進(jìn)程也會(huì)跟著死掉;
[vivian@localhost vivian]$ kill 1742
[vivian@localhost vivian]$ps -auxf | grep httpd //已經(jīng)找不到httpd了
對(duì)于僵尸進(jìn)程,能用kill -9 來(lái)強(qiáng)制終止退出;
比如一個(gè)程式已完全死掉,如果kill 不加信號(hào)強(qiáng)度是沒(méi)有辦法退出,最佳的辦法就是加信號(hào)強(qiáng)度 -9?
2 、killall
killall 通過(guò)程式的名字,直接殺死所有進(jìn)程,咱們簡(jiǎn)單說(shuō)一下就行了。
用法:killall 正在運(yùn)行的程式名
killall 也和ps或pgrep 結(jié)合使用,比較方便;通過(guò)ps或pgrep 來(lái)查看哪些程式在運(yùn)行;
舉例:
[vivian@localhost vivian]$ pgrep -l? httpd
1742 httpd
1744 httpd
23055 httpd
23087 httpd
10607 httpd
[vivian@localhost vivian]$ killall httpd
3、 pkill
pkill 和killall 應(yīng)用方法差不多,也是直接殺死運(yùn)行中的程式;如果你想殺掉單個(gè)進(jìn)程,請(qǐng)用kill 來(lái)殺掉。
應(yīng)用方法:
#pkill??? 正在運(yùn)行的程式名
4 、xkill
xkill 是在桌面用的殺死圖像界面的程式。比如當(dāng)firefox 出現(xiàn)崩潰不能退出時(shí),點(diǎn)鼠標(biāo)就能殺死firefox 。當(dāng)xkill運(yùn)行時(shí)出來(lái)和個(gè)人腦骨的圖標(biāo),哪個(gè)圖像程式崩潰一點(diǎn)就OK了。如果你想終止xkill ,就按右鍵取消;
xkill 調(diào)用方法:
[vivian@localhost vivian]$ xkill
總結(jié)
以上是生活随笔為你收集整理的Linux中kill,pkill,killall和xkill命令汇总讲解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: sysctl: 深入使用Linux的必经
- 下一篇: linux select 多路复用机制