要對進程進行檢測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程運行狀態。Linux 系統中
我們可以使用 ps 命令查看進程。
ps 命令介紹
ps(process status) 命令是 Linux 下最常用的進程查看工具,使用該命令可以確定哪些進程正在運行和運行的狀態、
進程是否結束、進程有沒有僵屍、哪些進程占用了過多的資源等等。
注意:ps 命令工具顯示的是進程的瞬間狀態,並不是動態連續顯示,如果想對進程狀態進行實時監控應該用 top 命
令。
ps 命令的基本使用
1. 執行任何不加選項的 ps 命令
[root@VM_81_181_centos ~]# ps PID TTY TIME CMD 22402 pts/1 00:00:00 bash 22447 pts/1 00:00:00 ps
直接執行不加任何選項的 ps 命令時,則只顯示當前用戶會話中打開的進程。第一行為列表標題,包含基本四個字段,
各個字段的含義描述如下:
PID:表示該進程的唯一 ID 號
TTY 或 TT:啟動進程的終端名。表示該進程在哪個終端上運行。不是從終端啟動的進程或與終端機無關的進程則顯示
為 ?
TIME:該進程使用 CPU 的累計時間
CMD:該進程所運行的命令
2.使用標准語法 (Unix 風格) 查看各個進程
選項:
-e:顯示系統內所有進程的信息。與 -A 選項功能相同
-f:使用完整 (full) 的格式顯示進程信息,如果只有 ps -e 則輸出進程信息的格式和只使用 ps 一樣
各字段含義如下:
UID:啟動該進程的用戶的 ID 號
PPID:代表該進程的父進程的 ID 號
C:進程的 CPU 處理器利用率
STIME/START:表示進程的啟動時間
注意:也可以使用 ps -eF 命令查看系統內的所有進程信息,輸出的進程信息比使用 ps -ef 多三個信息分別是:SZ,RSS
,PSR 關於這三個感興趣的可以自己上網查閱一下
3.使用 BSD 語法查看系統上的進程信息
3.1 顯示當前終端下的所有信息
a:顯示當前終端下的所有進程信息,包含其他用戶的進程信息。和 x 選項結合使用可以顯示系統中所有進程的信息
x:顯示當前用戶在所有終端下的進程信息
字段描述:
STAT:表示進程的當前狀態
R:running,運行或可運行狀態(在運行隊列中)。正在運行或准備運行的進程。 S:interruptable sleeping,可中斷睡眠(等待事件完成)。正在睡眠的進程。 D:uninterruptable sleeping,不可中斷的睡眠進程(通常為IO)。 T:stopped,停止或被追蹤的進程。由作業控制信號停止。 Z:zombie,失敗終止的(“僵死”)進程。 s:session leader,會話層狀態。代表的父進程 N:低優先級進程 <:高優先級進程 +:前台進程。在前台進程組中 l:多線程進程。
3.2 以面向用戶的格式顯示當前終端下的所有信息
u:使用以用戶為主的格式輸出進程信息
字段描述:
USER:啟動該進程的用戶帳號名稱
%CPU:表示進程的 CPU 占用率
%MEM:表示進程的內存占用率
VSZ:表示進程虛擬內存的大小,以 KB 為單位
4. 排序
當使用 aux 選項查看進程的 CPU 或內存使用量來篩選,從而方便找出占用資源最多的進程,但是默認情況下不排序,
在這里我們可以使用 --sort 命令選項排序,例如:
ps aux --sort=%mem 或 ps aux --sort %mem 這兩條命令是一樣的,也可以使用 ps aux --sort=+%mem 或 ps aux --sort +%mem,
%mem 前面默認有一個加號 + ,加不加上結果都是一樣的,都表示升序排序,如果想要降序排序並且看到字段標題可以在 %mem 前面
加上減號 -,如下所示:
5.根據特定條件過濾
在這里介紹一下和 grep 命令結合使用
僅僅顯示一個名為 sshd 的進程信息
以上就是 Linux 使用 ps 查看進程的部分比較常用的操作命令