日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux查看杀死进程

發(fā)布時間:2023/12/20 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux查看杀死进程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

linux 中使用top 或 ps 查看進程使用kill殺死進程

1.使用top查看進程:

$top

進行執(zhí)行如上命令即可查看top!但是難點在如何以進程的cpu占用量進行排序呢?

cpu占用量排序執(zhí)行下操作:

按大寫O再按k再敲回車,然后使用R就可以以cpu占用量進行查看了!下面貼出top的技巧命令:

“更改顯示內(nèi)容
通過 f 鍵可以選擇顯示的內(nèi)容。按 f 鍵之后會顯示列的列表,按 a-z 即可顯示或隱藏對應(yīng)的列,最后按回車鍵確定。

按 o 鍵可以改變列的顯示順序。按小寫的 a-z 可以將相應(yīng)的列向右移動,而大寫的 A-Z 可以將相應(yīng)的列向左移動。最后按回車鍵確定。

按大寫的 F 或 O 鍵,然后按 a-z 可以將進程按照相應(yīng)的列進行排序。而大寫的 R 鍵可以將當前的排序倒轉(zhuǎn)。”

然后還是頂部一參數(shù)的含義:

“?150 total 進程總數(shù)
2 running 正在運行的進程數(shù)
148 sleeping 睡眠的進程數(shù)
0 stopped 停止的進程數(shù)
0 zombie 僵尸進程數(shù)
Cpu0: 67.4% us 用戶空間占用CPU百分比
2.0% sy 內(nèi)核空間占用CPU百分比
0.0% ni 用戶進程空間內(nèi)改變過優(yōu)先級的進程占用CPU百分比
30.2% id 空閑CPU百分比
0.0% wa 等待輸入輸出的CPU時間百分比
0.0% hi
0.0% si
0.0% st


進程信息區(qū)
統(tǒng)計信息區(qū)域的下方顯示了各個進程的詳細信息。首先來認識一下各列的含義。

序號 列名 含義
a PID 進程id
b PPID 父進程id
c RUSER Real user name
d UID 進程所有者的用戶id
e USER 進程所有者的用戶名
f GROUP 進程所有者的組名
g TTY 啟動進程的終端名。不是從終端啟動的進程則顯示為 ?
h PR 優(yōu)先級
i NI nice值。負值表示高優(yōu)先級,正值表示低優(yōu)先級
j P 最后使用的CPU,僅在多CPU環(huán)境下有意義
k %CPU 上次更新到現(xiàn)在的CPU時間占用百分比
l TIME 進程使用的CPU時間總計,單位秒
m TIME+ 進程使用的CPU時間總計,單位1/100秒
n %MEM 進程使用的物理內(nèi)存百分比
o VIRT 進程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RES
p SWAP 進程使用的虛擬內(nèi)存中,被換出的大小,單位kb。
q RES 進程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATA
r CODE 可執(zhí)行代碼占用的物理內(nèi)存大小,單位kb
s DATA 可執(zhí)行代碼以外的部分(數(shù)據(jù)段+棧)占用的物理內(nèi)存大小,單位kb
t SHR 共享內(nèi)存大小,單位kb
u nFLT 頁面錯誤次數(shù)
v nDRT 最后一次寫入到現(xiàn)在,被修改過的頁面數(shù)。
w S 進程狀態(tài)。
D=不可中斷的睡眠狀態(tài)
R=運行
S=睡眠
T=跟蹤/停止
Z=僵尸進程
x COMMAND 命令名/命令行
y WCHAN 若該進程在睡眠,則顯示睡眠中的系統(tǒng)函數(shù)名

2.使用ps命令查看進程

$ ps -ef

……
smx?????? 1822???? 1? 0 11:38 ???????? 00:00:49 gnome-terminal
smx?????? 1823? 1822? 0 11:38 ???????? 00:00:00 gnome-pty-helper
smx?????? 1824? 1822? 0 11:38 pts/0??? 00:00:02 bash
smx?????? 1827???? 1? 4 11:38 ???????? 00:26:28 /usr/lib/firefox-3.6.18/firefox-bin
smx?????? 1857? 1822? 0 11:38 pts/1??? 00:00:00 bash
smx?????? 1880? 1619? 0 11:38 ???????? 00:00:00 update-notifier
……
smx????? 11946? 1824? 0 21:41 pts/0??? 00:00:00 ps -ef

或者:

$ ps -aux

……

smx?????? 1822? 0.1? 0.8? 58484 18152 ???????? Sl?? 11:38?? 0:49 gnome-terminal
smx?????? 1823? 0.0? 0.0?? 1988?? 712 ???????? S??? 11:38?? 0:00 gnome-pty-helper
smx?????? 1824? 0.0? 0.1?? 6820? 3776 pts/0??? Ss?? 11:38?? 0:02 bash
smx?????? 1827? 4.3? 5.8 398196 119568 ??????? Sl?? 11:38? 26:13 /usr/lib/firefox-3.6.18/firefox-bin
smx?????? 1857? 0.0? 0.1?? 6688? 3644 pts/1??? Ss?? 11:38?? 0:00 bash
smx?????? 1880? 0.0? 0.6? 41536 12620 ???????? S??? 11:38?? 0:00 update-notifier
……
smx????? 11953? 0.0? 0.0?? 2716? 1064 pts/0??? R+?? 21:42?? 0:00 ps -aux

3.下面演示如何殺死進程

此時如果我想殺了火狐的進程就在終端輸入:

$ kill -s 9 1827

其中-s 9 制定了傳遞給進程的信號是9,即強制、盡快終止進程。各個終止信號及其作用見附錄。

1827則是上面ps查到的火狐的PID。

簡單吧,但有個問題,進程少了則無所謂,進程多了,就會覺得痛苦了,無論是ps -ef 還是ps -aux,每次都要在一大串進程信息里面查找到要殺的進程,看的眼都花了。

進階篇:

改進1:

把ps的查詢結(jié)果通過管道給grep查找包含特定字符串的進程。管道符“|”用來隔開兩個命令,管道符左邊命令的輸出會作為管道符右邊命令的輸入。

$ ps -ef | grep firefox
smx?????? 1827???? 1? 4 11:38 ???????? 00:27:33 /usr/lib/firefox-3.6.18/firefox-bin
smx????? 12029? 1824? 0 21:54 pts/0??? 00:00:00 grep --color=auto firefox

這次就清爽了。然后就是

$kill -s 9 1827

還是嫌打字多?

改進2——使用pgrep:

一看到pgrep首先會想到什么?沒錯,grep!pgrep的p表明了這個命令是專門用于進程查詢的grep。

$ pgrep firefox
1827

看到了什么?沒錯火狐的PID,接下來又要打字了:

$kill -s 9 1827


改進3——使用pidof:

看到pidof想到啥?沒錯pid of xx,字面翻譯過來就是 xx的PID。

$ pidof firefox-bin
1827
和pgrep相比稍顯不足的是,pidof必須給出進程的全名。然后就是老生常談:


$kill -s 9 1827

無論使用ps 然后慢慢查找進程PID 還是用grep查找包含相應(yīng)字符串的進程,亦或者用pgrep直接查找包含相應(yīng)字符串的進程PID,然后手動輸入給kill殺掉,都稍顯麻煩。有沒有更方便的方法?有!

改進4:


$ps -ef | grep firefox | grep -v grep | cut -c 9-15 | xargs kill -s 9


說明:

“grep firefox”的輸出結(jié)果是,所有含有關(guān)鍵字“firefox”的進程。

“grep -v grep”是在列出的進程中去除含有關(guān)鍵字“grep”的進程。

“cut -c 9-15”是截取輸入行的第9個字符到第15個字符,而這正好是進程號PID。

“xargs kill -s 9”中的xargs命令是用來把前面命令的輸出結(jié)果(PID)作為“kill -s 9”命令的參數(shù),并執(zhí)行該命令。“kill -s 9”會強行殺掉指定進程。

難道你不想抱怨點什么?沒錯太長了

改進5:

知道pgrep和pidof兩個命令,干嘛還要打那么長一串!


$ pgrep firefox | xargs kill -s 9

改進6:


$ ps -ef | grep firefox | awk '{print $2}' | xargs kill -9
kill: No such process


有一個比較郁悶的地方,進程已經(jīng)正確找到并且終止了,但是執(zhí)行完卻提示找不到進程。

其中awk '{print $2}' 的作用就是打印(print)出第二列的內(nèi)容。根據(jù)常規(guī)篇,可以知道ps輸出的第二列正好是PID。就把進程相應(yīng)的PID通過xargs傳遞給kill作參數(shù),殺掉對應(yīng)的進程。

改進7:


難道每次都要調(diào)用xargs把PID傳遞給kill?答案是否定的:

$kill -s 9 `ps -aux | grep firefox | awk '{print $2}'`

改進8:

沒錯,命令依然有點長,換成pgrep。


$kill -s 9 `pgrep firefox`

改進9——pkill:

看到pkill想到了什么?沒錯pgrep和kill!pkill=pgrep+kill。

$pkill -9 firefox

說明:"-9" 即發(fā)送的信號是9,pkill與kill在這點的差別是:pkill無須 “s”,終止信號等級直接跟在 “-“ 后面。之前我一直以為是 "-s 9",結(jié)果每次運行都無法終止進程。

改進10——killall:

killall和pkill是相似的,不過如果給出的進程名不完整,killall會報錯。pkill或者pgrep只要給出進程名的一部分就可以終止進程。

$killall -9 firefox

OK,講到這里大家應(yīng)該了解了吧!

(轉(zhuǎn)載有禮:http://hi.baidu.com/amenmen/blog/item/6b45382c6f2805f38b1399ca.html#0)

轉(zhuǎn)載于:https://www.cnblogs.com/chenjiye/p/9181412.html

總結(jié)

以上是生活随笔為你收集整理的linux查看杀死进程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。