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


 

打開應用程序很容易,比如要打開firefox瀏覽器,我們可以在終端中輸入命令:

firefox &

最后加‘&’的目的是讓應用firefox在后台運行,這樣終端就不會被Firefox獨占。

如果忘了寫‘&’可以 Ctrl+z,然后打bg回車

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

關閉應用

ps是顯示當前狀態處於running的進程,grep表示在這些里搜索,而ps aux是顯示所有進程和其狀態。

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

|:管道符號,command1 |command2,將command1輸出結果通過管道作為command2命令的輸入參數.

***:~/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 evince

$ 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

https://www.cnblogs.com/robertoji/p/5555449.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM