Linux進程式控制制命令之ps,linux進程ps

來源:互聯網
上載者:User

Linux進程式控制制命令之ps,linux進程ps

  • 無參數
    預設情況下只顯示在當前終端下執行的進程,不顯示其他終端的資訊,而且顯示的資訊只有4列,如下:

    m@meng:~$ ps
    PID TTY TIME CMD
    17742 pts/14 00:00:00 bash
    30496 pts/14 00:00:00 ps

    四列資訊的含義分別是:
    PID: 運行著的命令(CMD)的進程編號
    TTY: 命令所啟動並執行位置(終端)
    TIME: 運行著的該命令所佔用的CPU處理時間
    CMD: 該進程所啟動並執行命令

  • 參數-l和-f
    想要得到更多資訊就需要加上這兩個參數之一,如下:

    m@meng:~$ ps -l
    F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
    0 S 1000 17742 14494 0 80 0 - 2433 wait pts/14 00:00:00 bash
    0 R 1000 30507 17742 0 80 0 - 1665 - pts/14 00:00:00 ps

    多出來的列的含義為:
    F:進程的旗標,又稱訊號量,用於進程互斥加鎖等,暫時不考慮;
    S:進程的狀態(S代表休眠,R代表可運行,Z代表殭屍進程,T代錶停止,0代表正在運行)
    UID:使用者id,PPID:父進程id
    C:CPU利用率
    PRI:進程的優先順序
    NI:nice值,又叫謙讓度。。。
    ADDR:進程的記憶體位址
    SZ:加入進程被換出,所需交換空間的大小
    WCHAR:進程是否正在運行,若是,則為“-”,跟S的作用類似
    TIME:運行進程所需的總CPU時間
    好吧,這些資訊很多暫時都用不上或者理解不了,別著急,慢慢來,早晚會用上的.


    m@meng:~$ ps -f
    UID PID PPID C STIME TTY TIME CMD
    m 17742 14494 0 5月28 pts/14 00:00:00 bash
    m 32105 17742 0 11:55 pts/14 00:00:00 ps -f

    -f顯示的資訊要少一些,而且有部分不同。
    主要就是STIME,它的含義是該進程被觸發的時間或它啟動的時間。

  • 參數-A和-e,它們的作用是相同的,都是用來顯示全部的進程,而不僅僅是當前終端下的進程,還包括沒有在終端啟動並執行進程。
  • 參數 -a,這個參數很神奇,反正我是沒弄懂,man上的資訊是:Select all processes except both session leaders (see getsid(2)) and processes not associated with a terminal.大概意思是說,顯示除控制進程(session leader)和無終端的進程外所有進程。看個例子:


    m@meng:~$ ps -a
    PID TTY TIME CMD
    24056 pts/18 00:00:00 ps

    我們知道有些進程無須藉助終端來運行,它們的TTY這一列顯示為“?”,-a選項會過濾掉這類進程;同時-a還會過濾掉控制進程,到底什麼是控制進程呢?莫非就是終端本身?如果不加-a參數,結果如下:

    m@meng:~$ ps
    PID TTY TIME CMD
    23962 pts/18 00:00:00 bash
    24062 pts/18 00:00:00 ps

    這個理解也許是對的。

  • 參數 -d:和-a類似,只不過它不會過濾無終端進程,而只是過濾控制進程——終端。
  • 參數 -u:顯示有效使用者ID在userlist列表中的進程。這個其實也不太好理解,他後面需要跟一個使用者名稱稱,表示只顯示該使用者相關的進程。但是如果-u後面沒有跟使用者名稱,其效果就跟“ps u”是一樣的(注意這裡的u沒有虛線),這也是ps命令複雜的地方,對某些參數有沒有虛線差別很大。
    ps u表示Display user-oriented format.如下:

    m@meng:~$ ps u
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    m 24187 0.0 0.1 9732 4324 pts/14 Ss 16:40 0:00 bash
    m 24245 0.0 0.0 6896 1152 pts/14 R+ 16:50 0:00 ps u

    -u經常和-a一起使用,但這時候-a的意思和前面單獨使用時是不一樣的。總之,-au == -a -u == au,a在這些組合中的意思是all。(好複雜的說。。)
  • 參數-p,後面跟進程id,顯示特定進程的資訊,等價於沒有虛線的p。還有一些進程可以直接將其id放在虛線後面,如:

    m@meng:~$ ps -1
    PID TTY STAT TIME COMMAND
    1 ? Ss 0:02 /sbin/init
  • 參數-C:後面跟某個命令或程式的全名,顯示相關資訊。
  • 參數x:通常與 au一起使用,可列出較完整資訊。我截取了一部分:

    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMANDroot         1  0.0  0.0   4584  2580 ?        Ss    5月28   0:02 /sbin/initroot         2  0.0  0.0      0     0 ?        S     5月28   0:00 [kthreadd]root         3  0.2  0.0      0     0 ?        S     5月28  10:10 [ksoftirqd/0]root         4  0.0  0.0      0     0 ?        S     5月28   0:00 [kworker/0:0]

    似乎比-f和-l還要詳細。

    呃,寫到這裡已經暈了,參數實在太多,我想以後會根據實際需求再來重新整理一遍。主要的其實就是下面兩個組合:
    ps -ef
    ps aux
    然後配合grep用管道擷取相關的進程資訊。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.