linux 命令——PS命令

首先要明白什麼是進程
進程是一個正在運行的程序。也就是說在Linux系統上運行的全部東西都是進程。和進程相比較,做業是一系列按必定順序執行的命令。一條簡單的命令可能會涉及多個進程,尤爲是當使用管道和重定向時。例如命令:
shell

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

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

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

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

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


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

1. ps簡介命令行

要對進程進行監測和控制,首先必需要了解當前進程的狀況,也就是須要查看當前進程,而ps命令就是最基本同時也是很是強大的進程查看命令。使用該命令能夠肯定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等等。總之大部分信息都是能夠經過執行該命令獲得的。code

2. ps命令的輸出blog

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身份登陸系統,查看當前進程情況

$ ps

PID TTY TIME COMMAND

5800 ttyp0 00:00:00 bash

5835 ttyp0 00:00:00 ps

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

可使用u選項來查看進程全部者及其餘一些詳細信息,以下所示:

$ ps u

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

test 5800 0.0 0.4 1892 1040 ttyp0 S Nov27 0:00 -bash

test 5836 0.0 0.3 2528 856 ttyp0 R Nov27 0:00 ps u

在bash進程前面有條橫線,意味着該進程即是用戶的登陸shell,因此對於一個登陸用戶來講帶短橫線的進程只有一個。還能夠看到%CPU、%MEM兩個選項,前者指該進程佔用的CPU時間和總時間的百分比;後者指該進程
佔用的內存和總內存的百分比。

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

在這種狀況下咱們會看到全部控制終端的進程;

特別說明 -l選項能夠告訴您某條進程是由哪一條進程引發的,這隻有當想鑑別子進程時纔有用:

$ ps -l

F       UID  PID   PPID          PRI   NI     SIZE    RSS   WCHAN        STAT             TTY   TIME            COMMAND
0       501   41     1           15     0      364    472   114d9c       S                v01   0:00            –bash
0       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死了,系統將關機。
相關文章
相關標籤/搜索