查看進程的狀態:java
1.查看進程的pid,以java爲例:ps -ef | grep javalinux
2.查看進程狀態:cat /proc/[pid]/status安全
關鍵字: linux
[root@localhost ~]# cat /proc/self/status
Name: cat
State: R (running)
SleepAVG: 88%
Tgid: 5783
Pid: 5783
PPid: 5742
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 256
Groups: 0 1 2 3 4 6 10
VmSize: 6588 kB
VmLck: 0 kB
VmRSS: 400 kB
VmData: 144 kB
VmStk: 2040 kB
VmExe: 14 kB
VmLib: 1250 kB
StaBrk: 0804e000 kB
Brk: 088df000 kB
StaStk: bfe03270 kB
ExecLim: 0804c000
Threads: 1
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000000000000
CapInh: 0000000000000000
CapPrm: 00000000fffffeff
CapEff: 00000000fffffeff
輸出解釋
參數 解釋
Name 應用程序或命令的名字
State 任務的狀態,運行/睡眠/僵死/
SleepAVG 任務的平均等待時間(以nanosecond爲單位),交互式任務由於休眠次數多、時間長,它們的 sleep_avg 也會相應地更大一些,因此計算出來的優先級也會相應高一些。
Tgid 線程組號
Pid 任務ID
Ppid 父進程ID
TracerPid 接收跟蹤該進程信息的進程的ID號
Uid Uid euid suid fsuid
Gid Gid egid sgid fsgid
FDSize 文件描述符的最大個數,file->fds
Groups
VmSize(KB) 任務虛擬地址空間的大小 (total_vm-reserved_vm),其中total_vm爲進程的地址空間的大小,reserved_vm:進程在預留或特殊的內存間的物理頁
VmLck(KB) 任務已經鎖住的物理內存的大小。鎖住的物理內存不能交換到硬盤 (locked_vm)
VmRSS(KB) 應用程序正在使用的物理內存的大小,就是用ps命令的參數rss的值 (rss)
VmData(KB) 程序數據段的大小(所佔虛擬內存的大小),存放初始化了的數據; (total_vm-shared_vm-stack_vm)
VmStk(KB) 任務在用戶態的棧的大小 (stack_vm)
VmExe(KB) 程序所擁有的可執行虛擬內存的大小,代碼段,不包括任務使用的庫 (end_code-start_code)
VmLib(KB) 被映像到任務的虛擬內存空間的庫的大小 (exec_lib)
VmPTE 該進程的全部頁表的大小,單位:kb
Threads 共享使用該信號描述符的任務的個數,在POSIX多線程序應用程序中,線程組中的全部線程使用同一個信號描述符。
SigQ 待處理信號的個數
SigPnd 屏蔽位,存儲了該線程的待處理信號
ShdPnd 屏蔽位,存儲了該線程組的待處理信號
SigBlk 存放被阻塞的信號
SigIgn 存放被忽略的信號
SigCgt 存放被俘獲到的信號
CapInh Inheritable,能被當前進程執行的程序的繼承的能力
CapPrm Permitted,進程可以使用的能力,能夠包含CapEff中沒有的能力,這些能力是被進程本身臨時放棄的,CapEff是CapPrm的一個子集,進程放棄沒有必要的能力有利於提升安全性
CapEff Effective,進程的有效能力 多線程