linux 阶段作业领导者,Linux入职基础-5.22_命令ps显示进程状态(应用实战6)
命令ps顯示進程狀態(應用實戰6)
簡介:
由于一個應用程序可能需要啟動多個進程,所以在同等情況下,進程的數量要比程序多。要對進程進行監測和控制,首先必須要了解當前進程的情況,而 ps 命令就是非常強大的進程查看命令。
功能:顯示瞬間進程 (process) 的動態
語法:ps[options]
參數:
-a 顯示所有終端機下執行的程序,除了階段作業領導者之外。
a 顯示現行終端機下的所有程序,包括其他用戶的程序。
-A 顯示所有程序。
-c 顯示CLS和PRI欄位。
c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
-C 指定執行指令的名稱,并列出該指令的程序的狀況。
-d 顯示所有程序,但不包括階段作業領導者的程序。
-e 此參數的效果和指定"A"參數相同。
e 列出程序時,顯示每個程序所使用的環境變量。
-f 顯示UID,PPIP,C與STIME欄位。
f 用ASCII字符顯示樹狀結構,表達程序間的相互關系。
-g 此參數的效果和指定"-G"參數相同,當亦能使用階段作業領導者的名稱來指定。
g 顯示現行終端機下的所有程序,包括群組領導者的程序。
-G 列出屬于該群組的程序的狀況,也可使用群組名稱來指定。
h 不顯示標題列。
-H 顯示樹狀結構,表示程序間的相互關系。
-j或j 采用工作控制的格式顯示程序狀況。
-l或l 采用詳細的格式來顯示程序狀況。
L 列出欄位的相關信息。
-m或m 顯示所有的執行緒。
n 以數字來表示USER和WCHAN欄位。
-N 顯示所有的程序,除了執行ps指令終端機下的程序之外。
-p 指定程序識別碼,并列出該程序的狀況。
p 此參數的效果和指定"-p"參數相同,只在列表格式方面稍有差異。
r 只列出現行終端機正在執行中的程序。
-s 指定階段作業的程序識別碼,并列出隸屬該階段作業的程序的狀況。
s 采用程序信號的格式顯示程序狀況。
S 列出程序時,包括已中斷的子程序資料。
-t 指定終端機編號,并列出屬于該終端機的程序的狀況。
t 此參數的效果和指定"-t"參數相同,只在列表格式方面稍有差異。
-T 顯示現行終端機下的所有程序。
-u 此參數的效果和指定"-U"參數相同。
u 以用戶為主的格式來顯示程序狀況。
-U 列出屬于該用戶的程序的狀況,也可使用用戶名稱來指定。
U 列出屬于該用戶的程序的狀況。
v 采用虛擬內存的格式顯示程序狀況。
-V或V 顯示版本信息。
-w或w 采用寬闊的格式來顯示程序狀況。
x 顯示所有程序,不以終端機來區分。
X 采用舊式的Linux i386登陸格式顯示程序狀況。
-y 配合參數"-l"使用時,不顯示F(flag)欄位,并以RSS欄位取代ADDR欄位 。
- 此參數的效果和指定"p"參數相同。
--cols 設置每列的最大字符數。
--columns 此參數的效果和指定"--cols"參數相同。
--cumulative 此參數的效果和指定"S"參數相同。
--deselect 此參數的效果和指定"-N"參數相同。
--forest 此參數的效果和指定"f"參數相同。
--headers 重復顯示標題列。
--help 在線幫助。
--info 顯示排錯信息。
--lines 設置顯示畫面的列數。
--no-headers 此參數的效果和指定"h"參數相同,只在列表格式方面稍有差異。
--group 此參數的效果和指定"-G"參數相同。
--Group 此參數的效果和指定"-G"參數相同。
--pid 此參數的效果和指定"-p"參數相同。
--rows 此參數的效果和指定"--lines"參數相同。
--sid 此參數的效果和指定"-s"參數相同。
--tty 此參數的效果和指定"-t"參數相同。
--user 此參數的效果和指定"-U"參數相同。
--User 此參數的效果和指定"-U"參數相同。
--version 此參數的效果和指定"-V"參數相同。
--widty 此參數的效果和指定"-cols"參數相同
Head標頭的含義說明:
USER???用戶名
UID???用戶ID(User ID)
PID???進程ID(Process ID)
PPID???父進程的進程ID(Parent Process id)
SID???會話ID(Session id)
%CPU???進程的cpu占用率
%MEM???進程的內存占用率
VSZ???進程所使用的虛存的大小(Virtual Size)
RSS???進程使用的駐留集大小或者是實際內存的大小,Kbytes字節。
TTY???與進程關聯的終端(tty)
STAT???進程的狀態:進程狀態使用字符表示的(STAT的狀態碼)
R 運行??? Runnable (on runqueue)?? 正在運行或在運行隊列中等待。
S 睡眠??? Sleeping???? 休眠中, 受阻, 在等待某個條件的形成或接受到信號。
I 空閑??? Idle
Z 僵死??? Zombie(a defunctprocess)? 進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用后釋放。
D 不可中斷??? Uninterruptible sleep (ususallyIO)??? 收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生。
T 終止??? Terminate???? 進程收到SIGSTOP, SIGSTP,SIGTIN, SIGTOU信號后停止運行運行。
P 等待交換頁
W 無駐留頁??? has no resident pages??????? 沒有足夠的記憶體分頁可分配。
X 死掉的進程
< 高優先級進程??? 高優先序的進程
N 低優先級進程??? 低優先序的進程
L 內存鎖頁Lock???? 有記憶體分頁分配并縮在記憶體內
s 進程的領導者(在它之下有子進程);
l 多進程的(使用 CLONE_THREAD, 類似 NPTL pthreads)
+ 位于后臺的進程組
START???進程啟動時間和日期
TIME???進程使用的總cpu時間
COMMAND???正在執行的命令行命令
NI???優先級(Nice)
PRI???進程優先級編號(Priority)
WCHAN?進程正在睡眠的內核函數名稱;該函數的名稱是從/root/system.map文件中獲得的。
FLAGS???與進程相關的數字標識
范例:
#1顯示現行終端機下的所有程序,包括其他用戶的程序;
[root@localhost~]# ps a
PIDTTY????? STAT?? TIME COMMAND
3154tty1???? Ss+??? 0:00 /sbin/mingetty tty1
3155tty2???? Ss+??? 0:00 /sbin/mingetty tty2
3156tty3???? Ss+??? 0:00 /sbin/mingetty tty3
3157tty4???? Ss+??? 0:00 /sbin/mingetty tty4
3158tty5???? Ss+??? 0:00 /sbin/mingetty tty5
3161tty6???? Ss+??? 0:00 /sbin/mingetty tty6
3262tty7???? Ss+??? 0:51 /usr/bin/Xorg :0 -br -audit 0 -auth/var/gdm/:0.Xauth -n
8078pts/2??? Ss+??? 0:00 bash
14509 pts/1??? Ss????0:00 -bash
14907 pts/3??? Ss????0:00 -bash
14932 pts/3??? S+????0:02 top
14978 pts/1??? R+????0:00 ps a
//同時加上x參數,會顯示沒有控制終端的進程。
[root@localhost ~]# ps ax | less? //數據較多,使用less命令查看
//同時加上c參數,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
[root@localhost ~]# ps axc | less
#2需要查看特定用戶進程的情況,可以使用-u參數。
[root@localhost ~]# ps -u rabbit
PIDTTY????????? TIME CMD
14906 ???????? 00:00:00 sshd
14907 pts/3??? 00:00:00 bash
14932 pts/3??? 00:00:02 top
#3需要找到哪些進程占用了CPU和內存的資源,可以結合aux參數
[root@localhost ~]# ps aux | less
USER??????PID %CPU %MEM??? VSZ?? RSS TTY?????STAT START?? TIME COMMAND
root????????1? 0.0? 0.0??2160?? 652 ???????? Ss???2015?? 0:00 init [5]
root????????2? 0.0? 0.0?????0???? 0 ???????? S
root????????3? 0.0? 0.0?????0???? 0 ????? ???SN???2015?? 0:00 [ksoftirqd/0]
root????????4? 0.0? 0.0?????0???? 0 ???????? S
//默認的結果集是未排好序的。可以通過--sort命令來排序,
[root@localhost ~]# ps aux --sort –pcpu |less? ?//根據CPU使用來升序排序:
[root@localhost ~]# ps aux --sort -pmem | less//根據內存使用來升序排序
//找出與cron與syslog這兩個服務有關的PID號碼
[root@localhost~]# ps aux | egrep '(cron|syslog)'
#4使用-C參數,后面跟你要找的進程的名字
[root@localhost ~]# ps -fC mingetty? //比如想顯示一個名為mingetty的進程的信息
#5如果我們想知道特定進程的線程,可以使用-L參數,后面加上特定的PID
[root@localhost ~]# ps -fL 1??? //要看到更多的細節,可用-f參數來查看
#6希望以樹形結構顯示進程,可以使用-axjf參數
[root@localhost ~]# ps -axjf
或者
[root@localhost ~]# pstree
#7查看現在有誰登入了你的服務器, -o參數控制輸出
[root@localhost ~]# ps -eo pid,user,args
#8格式化輸出root用戶(真實的或有效的UID)創建的進程
// -U 參數按真實用戶ID(RUID)篩選進程, -u 參數用來篩選有效用戶ID(EUID)。
[root@localhost ~]# ps -U root u
#9使用PS實時監控進程狀態,可以將ps命令和watch命令結合起來
//篩選進程,并且我們希望結果能夠每2秒刷新一次
[root@localhost ~]# watch -n 2 'ps aux |grep mingetty'
#10ps查看進程情況,常用的匯總:
1)ps a 顯示現行終端機下的所有程序,包括其他用戶的程序。
2)ps -A 顯示所有進程。
3)ps c 列出程序時,顯示每個程序真正指令名稱,但不包含路徑,參數或常駐服務的說明。
4)ps -e 此參數的效果和指定"A"參數相同。
5)ps e 列出程序時,顯示每個程序所使用的環境變量。
6)ps f 用ASCII字符顯示樹狀結構,表達程序間的相互關系。
7)ps -H 顯示樹狀結構,表示程序間的相互關系。
8)ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。
9)ps s 采用程序信號的格式顯示程序狀況。
10)ps S 列出程序時,包括已中斷的子程序資料。
11)ps -t 指定終端機編號,并列出屬于該終端機的程序的狀況。
12)ps u 以用戶為主的格式來顯示程序狀況。
13)ps x 顯示所有程序,不以終端機來區分。
14)ps l? 將目前屬于您自己這次登入的 PID 與相關信息列示出來
#11常用組合:
psaxjf//列出類似程序樹的程序顯示
psaux?//列出目前所有的正在內存當中的程序
ps–ef
ps–lA
總結
以上是生活随笔為你收集整理的linux 阶段作业领导者,Linux入职基础-5.22_命令ps显示进程状态(应用实战6)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 6.0 log,andr
- 下一篇: android+mvp+登录案例,and