linux ps命令詳解(unix風格)
linux中ps只顯示進程的靜態快照,及瞬間的進程狀態,它擁有眾多的風格,可分為3組:UNIX風格,BSD風格,GNU風格,本文介紹UNIX風格的ps指令。
參數
ps [-aefFly] [-p pid] [-u userid]
-a 與任何用戶標識和終端相關的進程
-e 所有進程(包括守護進程)
-p pid 與指定PID相關的進程
-u userid 與指定用戶標識userid相關的進程
-ef 顯示所有用戶進程,完整輸出
-a 顯示所有非守護進程
-t 僅顯示所有守護進程
顯示參數
ADDR 進程表中的虛擬地址
C 處理器利用率(廢棄率)
CMD 正被執行的命令的名稱
F 與進程相關的標志
NI nice值,用於設置優先級
PID 進程ID
PPID 父進程的進程ID
PRI 優先級(較大的數字=較低的優先級)
RSS 內存駐留空間大小(內存管理)
S 狀態代碼(D,R,S,T,Z)
STIME 累積系統時間
SZ 物理頁的大小(內存管理)
TIME 累積CPU時間
TTY 控制終端的完整名稱
UID 用戶標識
WCHAN 等待通道
實例
1. 顯示所有當前進程
$ ps -ax //-a 代表 all,同時加上x參數會顯示沒有控制終端的進程。 $ ps -ax | less //less便於查看
2. 根據用戶過濾進程
$ ps -u webadmin //要查看用戶'webadmin'的進程
3. 通過cpu和內存使用來過濾進程
$ $ ps -aux | less $ ps -aux --sort -pcpu | less //--sort命令根據CPU使用來升序排序 $ ps -aux --sort -pmem | less //--sort命令根據內存使用來升序排序 $ ps -aux --sort -pcpu,+pmem | head -n 10 //同時根據CPU和內存排序,並顯示前10個結果
3. 通過進程名和PID過濾
$ ps -C java //顯示名為java的進程的信息 $ ps -f -C Java //顯示進程更多的信息
3. 顯示安全信息
$ ps -eo pid,user,args //參數 -e 顯示所有進程信息,-o 參數控制輸出。Pid,User和Args參數顯示PID,運行應用的用戶和該應用
3. 實時監控進程狀態
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’ //每秒刷新一次當前的進程狀態 $ watch -n 1 ‘ps -aux --sort -pmem, -pcpu | head 20’ //限制前20條
版權聲明:本文為JAVASCHOOL原創文章,未經本站允許不得轉載。
出處:http://www.51gjie.com/linux/1007.html
=======================================================================================
Linux ps命令詳解
ps命令(全稱:process status)是linux查看當前系統中進程狀態的常用命令。
ps命令詳細介紹
ps命令的用法如下:
ps [options]
options表示命令參數,詳細的參數列表如下:
-A 顯示所有進程(等價於-e)
-a 顯示一個終端的所有進程,除了會話引線
-e 顯示所有進程(等價於-A)
-N 忽略選擇
-d 顯示所有進程,但省略所有的會話引線
-x 顯示沒有控制終端的進程,同時顯示各個命令的具體路徑。dx不可合用
-p pid 進程使用cpu的時間
-u uid or username 選擇有效的用戶id或者是用戶名
-g gid or groupname 顯示組的所有進程
U username 顯示該用戶下的所有進程,且顯示各個命令的詳細路徑,如:ps U admin;ps -fU root
-f 全部列出,通常和其他選項聯用
-l 長格式(有F,wchan,C 等字段)
-j 作業格式
-o 用戶自定義格式
v 以虛擬存儲器格式顯示
s 以信號格式顯示
-m 顯示所有的線程
-H 顯示進程的層次(和其它的命令合用,如:ps -Ha)
e 命令之后顯示環境
h 不顯示第一行
--lines<行數> 每頁顯示的行數
--width<字符數> 每頁顯示的字符數
--help 顯示幫助信息
--version 顯示版本信息
針對STAT(進程當前狀態)的描述如下:
D 無法中斷的休眠狀態(通常 IO 的進程)
R 正在運行可中在隊列中可過行的
S 處於休眠狀態
T 停止或被追蹤
W 進入內存交換 (從內核2.6開始無效)
X 死掉的進程 (基本很少見)
Z 僵屍進程
< 優先級高的進程
N 優先級較低的進程
L 有些頁被鎖進內存
s 進程的領導者(在它之下有子進程)
l 多線程,克隆線程(使用 CLONE_THREAD, 類似 NPTL pthreads)
+ 位於后台的進程組
比如我們可以通過以下命令查看當前系統所有進程信息:
ps -aux
執行結果如下:
如果查看指定的進程,如java進程,可以通過管道符和grep命令進行過濾,命令如下:
ps -aux|grep java
執行結果如下:
實例操作
1. 殺掉java進程(慎用)
#查看java進程 ps -aux|grep java #獲取java進程號,如55555,通過kill命令關閉進程(-9表示強制關閉) kill -9 55555
是不是覺得很麻煩,那么就用一個命令表達式來完成上面的功能
#要確保當前系統只有一個java進程,防止誤殺 ps -uax|grep java|awk '{print $2}'|xargs kill -9
2. 查看cpu占用率前10的進程
#這里head命令后的11,包含第1行的列信息
ps -aux --sort=-pcpu|head -11
出處:http://t.zoukankan.com/atai-p-14393027.html
=======================================================================================
Linux查看進程--ps命令
查看進程:
1、ps 命令用於查看當前正在運行的進程。
grep 搜索
例如: ps -ef | grep java
表示查看所有進程里 CMD 是 java 的進程信息
2、ps -aux | grep java
-aux 顯示所有狀態
ps
3. kill 命令用於終止進程
例如: kill -9 [PID]
-9 表示強迫進程立即停止
通常用 ps 查看進程 PID ,用 kill 命令終止進程
出處:https://www.csdn.net/tags/MtjaggwsMTYwNDctYmxvZwO0O0OO0O0O.html
=======================================================================================
ps 命令顯示不完整的問題
今天在使用ps命令的時候,無法查找到指定名字的進程ID,仔細查找才發現ps命令查找的結果中進程啟動的命令以及參數信息被截斷了
問題實例
用戶wanng啟動了一個進程 wanng_qytrunkcross, 啟動參數是 config.lua 文件,執行 ps -u wanng 查詢用戶的進程,結果如下:
[wanng@localhost shell]# ps -u wanng
PID TTY TIME CMD
127271 ? 00:00:01 sshd
127272 pts/4 00:00:00 bash
127332 pts/4 00:17:19 wanng_qytrunkcros
從結果中發現進程名和啟動參數的顯示被截斷了
解決方案
以下是通過man ps查詢到的解決辦法,以下三種方法都可以解決這個問題
w Wide output. Use this option twice for unlimited width
-w Wide output. Use this option twice for unlimited width.
-f Do full-format listing. This option can be combined with many other UNIX-style options to add additional columns. It also causes the command arguments to be printed. When used with -L, the NLWP (number of threads) and LWP (thread ID) columns will be added. See the c option, the format keyword args, and the format keyword comm.
-F Extra full format. See the -f option, which -F implies.
- 在 ps 后面加上 -w w 選項,命令執行結果如下
[wanng@localhost shell]# ps -u wanng -w w
PID TTY STAT TIME COMMAND
127271 ? S 0:01 sshd: wanng@pts/4
127272 pts/4 Ss+ 0:00 -bash
127332 pts/4 Sl 17:20 ./wanng_qytrunkcross config.lua
- 在 ps 后面加上 ww 選項,命令執行結果如下
[wanng@localhost shell]# ps -u wanng ww
PID TTY STAT TIME COMMAND
127271 ? S 0:01 sshd: wanng@pts/4
127272 pts/4 Ss+ 0:00 -bash
127332 pts/4 Sl 17:20 ./wanng_qytrunkcross config.lua
- 在 ps 后面加上 -f 或 -F 選項,表示以全格式顯示,命令執行結果如下
[wanng@localhost shell]# ps -f -u wanng
UID PID PPID C STIME TTY TIME CMD
wanng 127271 127269 0 13:55 ? 00:00:01 sshd: wanng@pts/4
wanng 127272 127271 0 13:55 pts/4 00:00:00 -bash
wanng 127332 1 3 13:55 pts/4 00:18:30 ./wanng_qytrunkcross config.lua
出處:https://www.cnblogs.com/wanng/p/ps-command-truncation.html