linux 命令——PS命令

來源:互聯網
上載者:User

標籤:

首先要明白什麼是進程
進程是一個正在啟動並執行程式。也就是說在Linux系統上啟動並執行所有東西都是進程。和進程相比較,作業是一系列按一定順序執行的命令。一條簡單的命令可能會涉及多個進程,尤其是當使用管道和重新導向時。例如命令:

# nroff –man ps.1 | grep kill | more

將產生三個進程,每一條命令一個。

Linux作業系統有好幾種進程,每一種都有其各自的品質和特性。下面給出了Linux系統的三種進程:

■ 互動式進程:一個由shell啟動並控制的進程。互動式進程既可在前台也可在後台運行。

■ 批處理進程:與終端無關,安排在指定時刻完成的一系列進程。


■ 守護進程:在引導系統時起動,以執行即時的作業系統任務,如 lpd、inetd、named等。

1. ps簡介

要對進程進行監測和控制,首先必須要瞭解當前進程的情況,也就是需要查看當前進程,而ps命令就是最基本同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和啟動並執行狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等等。總之大部分資訊都是可以通過執行該命令得到的。

2. ps命令的輸出

ps命令通常以行列的形式輸出結果。系統中的每一個進程都有一個唯一的標誌符以便Linux可以識別它們。Linux通過給每一個進程分配唯一的數位來處理進程,這個數位叫做進程ID號(或PID號)。PID號當系統被引導時從0開始,每增加一個進程就加1位,直到系統確定的一個數字,例如65564。然後,PID號再從0開始,周而復始,不斷迴圈。通常PID號較小的進程是系統的核心和守護進程,當系統被引導時它們就存在,並只要系統還在運行,它們就處於活躍狀態。當使用者管理進程時(比如終止它們),就必須要用到PID號。ps命令輸出的TTY列告訴使用者進程從哪一個終端開始。如果作為普通使用者登入,那麼通常就是使用者自己的終端或控制台。如果在一個多控制台的系統上工作,使用者將看到自己在每一個控制台起動的所有進程。

ps命令輸出的STAT列告訴使用者當前進程的狀態。進程最常見的兩種狀態是S(sleeping)代表沉睡的進程和R(running)代表啟動並執行進程。啟動並執行進程是當前正在CPU中執行的進程,而沉睡的進程是當前並不活動的進程。進程可以每秒種在沉睡和運行兩種狀態間轉換多次。

ps命令輸出的TIME列告訴使用者進程佔用CPU的總共時間,這些時間通常都很短,這是因為大多數進程運行結束只需很短的時間就夠了。

COMMANDS列,這一列包含了使用者所啟動並執行所有命令的名稱。出現在COMMANDS列中的通常都是使用者使用的命令,但有些命令還會引起其它的進程,這些進程被稱為子進程。

3. ps命令及其參數

  ps命令最常用的還是用於監控後台進程的工作情況,因為後台進程是不和螢幕小鍵盤這些標準輸入/輸出裝置進行通訊的,所以如果需要檢測其情況,便可以使用ps命令了。

該命令文法格式如下:

  ps

  下面對命令選項進行說明:
  -e 顯示所有進程。
  -f 全格式。
  -h 不顯示標題。
  -l 長格式。
  -w 寬輸出。
  a 顯示終端上的所有進程,包括其他使用者的進程。
  r 只顯示正在啟動並執行進程。

3. 常用ps命令參數

最常用的三個參數是u、a、x,下面將通過例子來說明其具體用法。

以root身份登入系統,查看當前進程狀況

$ psPID TTY TIME COMMAND5800 ttyp0 00:00:00 bash5835 ttyp0 00:00:00 ps

可以看到,顯示的項目共分為四項,依次為PID(進程ID)、TTY(終端名稱)、TIME(進程執行時間)、COMMAND(該進程的命令列輸入)。

可以使用u選項來查看進程所有者及其他一些詳細資料,如下所示:

$ ps uUSER PID %CPU %MEM USZ RSS TTY STAT START TIME COMMANDtest 5800 0.0 0.4 1892 1040 ttyp0 S Nov27 0:00 -bashtest 5836 0.0 0.3 2528 856 ttyp0 R Nov27 0:00 ps u

在bash進程前面有條橫線,意味著該進程便是使用者的登入shell,所以對於一個登入使用者來說帶虛線的進程只有一個。還可以看到%CPU、%MEM兩個選項,前者指該進程佔用的CPU時間和總時間的百分比;後者指該進程
佔用的記憶體和總記憶體的百分比。

$ ps x(結果太長就不列出了..)

在這種情況下我們會看到所有控制終端的進程;

特別說明 -l選項可以告訴您某條進程是由哪一條進程引起的,這隻有當想鑒別子進程時才有用:

$ ps -lF       UID  PID   PPID          PRI   NI     SIZE    RSS   WCHAN        STAT             TTY   TIME            COMMAND0       501   41     1           15     0      364    472   114d9c       S                v01   0:00            –bash0       501   121   41           29     0      64     208   0            R                v01   0:00            ps –l

 

PPID(Parent Process ID)是進程的父進程的ID號。在本例中,列出的第一個進程(PID 41)是第二個進程(PID 121)的父進程。您還可以看到,ps –l的父進程login Bourne shell的PID是1,這是作業系統的init進程。如果init被終止,那麼所有的進程都會被殺死。簡單地說,如果init死了,系統將關機。

linux 命令——PS命令

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.