Ubuntu/Linux使用命令行打開和關閉應用程序/ps命令和kill命令詳解

 

打開應用程序很容易,好比要打開firefox瀏覽器,咱們能夠在終端中輸入命令:html

firefox &node

最後加‘&’的目的是讓應用firefox在後臺運行,這樣終端就不會被Firefox獨佔。linux

若是忘了寫‘&’能夠 Ctrl+z,而後打bg回車正則表達式

文件名中含空格要寫成  '\ 'express

關閉應用瀏覽器

ps是顯示當前狀態處於running的進程,grep表示在這些裏搜索,而ps aux是顯示全部進程和其狀態。網絡

$ ps aux | grep evince     查到evince的進程工具

|:管道符號,command1 |command2,將command1輸出結果經過管道做爲command2命令的輸入參數.ui

***:~/Downloads$ ps aux|grep evince
hellowo+  6705  5.1  1.3 1202288 107160 pts/0  Sl   20:15   0:02 evince test.pdf
hellowo+  6710  0.0  0.0 161224  3880 ?        Ssl  20:15   0:00 /usr/lib/evince/evinced
hellowo+  6746  0.0  0.0  17480   824 pts/0    S+   20:16   0:00 grep --color=auto evincefirefox

$ kill -s 9 pid   殺死進程號爲PID的進程,例如:kill -9 6705

 

ps命令(Process Status):

要對進程進行監測和控制,首先必需要了解當前進程的狀況,也就是須要查看當前進程, 而ps命令(Process Status)就是最基本同時也是很是強大的進程查看命令.

使用該命令 能夠肯定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有殭屍、哪些進程佔用了過多的資源等等.總之大部分信息都是能夠經過執行該命令獲得的.

ps 爲咱們提供了進程的一次性的查看,它所提供的查看結果並不動態連續的;

若是想對進程時間監控,應該用 top 工具。

 

若是直接用ps命令,會顯示全部進程的狀態,一般結合grep命令查看某進程的狀態。

grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。

使用示例:

[root@node20 updateDB]# ps aux|grep ./update_stock

root 14232 0.0 0.0 5928 724 pts/1 S+ 18:16 0:00 grep ./update_stock

root 25021 0.0 0.0 3056 816 ? S Apr12 0:03 ./update_stock

 

ps aux輸出格式:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

格式說明:

USER: 行程擁有者

PID: pid

%CPU: 佔用的 CPU 使用率

%MEM: 佔用的記憶體使用率

VSZ: 佔用的虛擬記憶體大小

RSS: 佔用的記憶體大小

TTY: 終端的次要裝置號碼 (minor device number of tty)

 

STAT: 該行程的狀態,linux的進程有5種狀態:

D 不可中斷 uninterruptible sleep (usually IO)  (收到信號不喚醒和不可運行, 進程必須等待直到有中斷髮生)

R 運行 runnable (on run queue)      (正在運行或在運行隊列中等待)

S 中斷 sleeping     (休眠中, 受阻, 在等待某個條件的造成或接受到信號)

T 中止 traced or stopped    (進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後中止運行運行)

Z 僵死 a defunct (」zombie」) process   (進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放)

注: 其它狀態還包括W(無駐留頁), <(高優先級進程), N(低優先級進程), L(內存鎖頁).

 

START: 進程開始時間

TIME: 執行的時間

COMMAND:所執行的指令

 

1)   ps a 顯示現行終端機下的全部程序,包括其餘用戶的程序。
2)ps -A 顯示全部程序。
3)ps c 列出程序時,顯示每一個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
4)ps -e 此參數的效果和指定"A"參數相同。
5)ps e 列出程序時,顯示每一個程序所使用的環境變量。
6)ps f 用ASCII字符顯示樹狀結構,表達程序間的相互關係。
7)ps -H 顯示樹狀結構,表示程序間的相互關係。
8)ps -N 顯示全部的程序,除了執行ps指令終端機下的程序以外。
9)ps s 採用程序信號的格式顯示程序情況。
10)ps S 列出程序時,包括已中斷的子程序資料。
11)ps -t 指定終端機編號,並列出屬於該終端機的程序的情況。
12)ps u 以用戶爲主的格式來顯示程序情況。
13)ps x 顯示全部程序,不以終端機來區分。

14)$ps -aux 查看全部運行的進程

15)ps -l 較長,較詳細的顯示該PID的信息

# ps -lA |more

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

4 S 0 1 0 0 76 0 - 1193 109952 ? 00:00:03 init

1 S 0 2 1 0 -40 - - 0 migrat ? 00:00:03 migration/0

1 S 0 3 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/0

1 S 0 4 1 0 -40 - - 0 migrat ? 00:00:02 migration/1

1 S 0 5 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/1

1 S 0 6 1 0 -40 - - 0 migrat ? 00:00:02 migration/2

1 S 0 7 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/2

相關信息的意義:

F 進程的標誌(flag),4表示用戶為超級用戶

S 進程的狀態(stat),各STAT的意義見下文

PID 進程的ID

C CPU使用資源的百分比

PRI priority(優先級)的縮寫,

NI Nice值,

ADDR 核心功能,指出該進程在內存的那一部分,若是是運行的進程,通常都是「-」

SZ 用掉的內存的大小

WCHAN 當前進程是否正在運行,若為「-」表示正在運行

TTY 登陸者的終端位置

TIME 用掉的CPU的時間

CMD 所執行的指令

 

# ps aux |more

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 0.0 4772 564 ? S Sep22 0:03 init [3]

root 2 0.0 0.0 0 0 ? S Sep22 0:03 [migration/0]

root 3 0.0 0.0 0 0 ? SN Sep22 0:00 [ksoftirqd/0]

root 4 0.0 0.0 0 0 ? S Sep22 0:02 [migration/1]

root 5 0.0 0.0 0 0 ? SN Sep22 0:00 [ksoftirqd/1]

root 6 0.0 0.0 0 0 ? Ss+ Sep22 0:02 [migration/2]

root 7 0.0 0.0 0 0 ? SN Sep22 0:00 [ksoftirqd/2]

root 8 0.0 0.0 0 0 ? S Sep22 0:00 [migration/3]

root 9 0.0 0.0 0 0 ? SN Sep22 0:00 [ksoftirqd/3]

root 10 0.0 0.0 0 0 ? S< Sep22 0:00 [migration/4]

上述各位解釋:

USER 進程的屬主;

PID 進程的ID;

PPID 父進程;

%CPU 進程佔用的CPU百分比;

%MEM 佔用內存的百分比;

NI 進程的NICE值,數值大,表示較少佔用CPU時間;

VSZ 進程使用的虛擬內存量(KB);

RSS 該進程佔用的固定內存量(KB)(駐留中頁的數量);

TTY 該進程在那個終端上運行(登陸者的終端位置),若與終端無關,則顯示(?)。
若爲pts/0等,則表示由網絡鏈接主機進程

WCHAN 當前進程是否正在進行,若爲-表示正在進行;

START 該進程被觸發啓動時間;

TIME 該進程實際使用CPU運行的時間;

COMMAND 命令的名稱和參數;

STAT狀態位常見的狀態字符

D 沒法中斷的休眠狀態(一般 IO 的進程);

R 正在運行可中在隊列中可過行的;

S 處於休眠狀態;

T 中止或被追蹤;

W 進入內存交換 (從內核2.6開始無效);

X 死掉的進程 (基本不多見);

Z 殭屍進程;

< 優先級高的進程

N 優先級較低的進程

L 有些頁被鎖進內存;

s 進程的領導者(在它之下有子進程);

l 多進程的(使用 CLONE_THREAD, 相似 NPTL pthreads);

+ 位於後臺的進程組;

kill命令:

$kill -9 (PID) 殺死進程號爲PID的進程

$killall (program) killall 加上程序的名字,直接殺掉全部進程

$pkill (program) pkill 加上程序的名字,方法killall相似

$xkill xkill 是在桌面用的殺死圖形界面的程序。好比當firefox 出現崩潰不能退出時,點鼠標就能殺死firefox 。當xkill運行時出來和我的腦骨的圖標,哪一個圖形程序崩潰一點就OK了。若是您想終止xkill ,就按右鍵取消。

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

試用xkill命令把那個小叉號點到了終端上~弄得系統死住了~只能強制重啓~so~那個小叉號

不要亂點在桌面或系統進程上

之前用過xkill命令感受很好用~今天kill的這個程序用它就不行了~我用了kill -9才行的

還有就是系統監視器也不行~推薦用kill -9命令

還有有人說-9究竟是什麼意思 ~好象是強制的意思

上邊的命令不行能夠在前面加上sudo~~~~~~~~

參考博客:https://www.cnblogs.com/sunrunzhi/archive/2013/04/14/3020074.html?utm_source=tuicool

http://www.javashuo.com/article/p-muoakraq-eq.html

相關文章
相關標籤/搜索