Linux 進程管理

ps [選項]

 -A:顯示系統中所有進程的信息

 -l: 以長格式顯示進程信息

 -e: 顯示所有進程信息

 -f: 顯示完整信息

 -r: 正在運行的進程

 -a: 與終端相關進程

 -u: 以用戶熟悉格式顯示

-x: 與終端無關的進程

-p: 顯示由進程ID指定的進程信息

-t: 顯示指定終端上的進程信息


1:僅查看自己的BASH的相關進程

wKioL1loXs3TRd0pAAAdXGIyTgU096.png

F;表示爲程序權限總結,4表示爲root,若1爲此子進程僅進行復制沒有運行

S:爲程序狀態(stat),主要狀態如下:

    R (Running):該程序正在運行

    S (Sleep):該程序目前正在睡眠狀態(idle),但可以被喚醒(signal)。

    D :不可被喚醒的睡眠狀態,通常這支程序可能在等待 I/O 的情況(ex>列印)

    T :停止狀態(stop),可能是在工作控制(背景暫停)或除錯 (traced) 狀態;

    Z (Zombie):殭屍狀態,程序已經終止但卻無法被移除至內存外   

             s:會話的創建者

                            +:正在前臺運行進程

                            l:多線程進程

                            <: 高優先級進程

                             N: 低有線進程     

UID/PID/PPID:代表『此程序被該 UID 所擁有/程序的 PID 號碼/此程序的父程序 PID 號碼』

C:代表 CPU 使用率,單位爲百分比

PRI/NI:Priority/Nice 的縮寫,代表此程序被 CPU 所運行的優先順序,數值越小代表該程序越快被 CPU 運行

ADDR/SZ/WCHAN:都與內存有關,ADDR 是 kernel function,指出該程序在內存的哪個部分,如果是個 running 的程序,一般就會顯示『 - 』 / SZ 代表此程序用掉多少內存 / WCHAN 表示目前程序是否運行中,同樣的, 若爲 - 表示正在運行中。

TTY:登陸者的終端機位置,若爲遠程登陸則使用動態終端介面 (pts/n); ?時爲與終端無關的進程

TIME:使用掉的 CPU 時間,注意,是此程序實際花費 CPU 運行的時間,而不是系統時間

CMD:就是 command 的縮寫,造成此程序的觸發程序之命令爲何


2:ps -ef 是用標準的格式顯示進程的、其格式如下

wKioL1lmXKjxkLl3AAIQ-XYjlcQ646.jpg

其中各列的內容意思如下
UID    //用戶ID、但輸出的是用戶名 
PID    //進程的ID 
PPID    //父進程ID 
C      //進程佔用CPU的百分比 
STIME  //進程啓動時間
TTY    //該進程在那個終端上運行,若與終端無關,則顯示? 若爲pts/0等,則表示由網絡連接主機進程。 
CMD    //命令的名稱和參數


3:ps aux 是用BSD的格式來顯示、其格式如下

wKiom1lmXM3iFRzRAAJ2rY1tpIY217.jpg

同ps -ef 不同的有列有
USER      //用戶名 

PID      // 程序pid 號
%CPU      //進程佔用的CPU百分比 
%MEM      //佔用物理內存的百分比 
VSZ      //該進程使用的虛擬內存量(Kbytes) 
RSS      //該進程佔用的固定內存量(Kbytes)(駐留中頁的數量) 

TTY        //tty1-tty6本機上面的登入者程序,如果爲pts/0, pts1等,就表示是由網絡鏈接進入主機的程序

STAT      //進程的狀態 ,有R,S,T,Z            

          R (Running):該程序正在運行

          S (Sleep):該程序目前正在睡眠狀態(idle),但可以被喚醒(signal)。

          D :不可被喚醒的睡眠狀態,通常這支程序可能在等待 I/O 的情況(ex>列印)

          T :停止狀態(stop),可能是在工作控制(背景暫停)或除錯 (traced) 狀態;

          Z (Zombie):殭屍狀態,程序已經終止但卻無法被移除至內存外   

                  s:會話的創建者

                                      +:正在前臺運行進程

                                      l:多線程進程

                                      <: 高優先級進程

                                      N: 低有線進程      

START    //該進程被觸發啓動時間 
TIME      //該進程實際使用CPU運行的時間

COMMAND  //運行改程序的指令


4:top

  top [-d 數字][-bnp]

     選項:

      -d :後面接秒數,就是刷新秒數,默認爲5秒

       -b : 以批次方面的執行top

      -n :與 -b 搭配,意思是需要幾次top的輸出結果

              # tob -b -n 3   輸出top3次結果並保存到top.txt裏

      -p :監測指定某個pid

              # top -d 2 -p 93553  監視pid爲93553這個程序


 top執行過程中可以用的按鍵指令:

            ?:顯示在top當中可以輸入的按鍵指

     P: 大寫P 以佔用CPU%大小排序

            M:大寫M 以佔用memory空間大小排序

            T:大定T 以cpu累積佔用時間排序

             N:大寫N 以pid排序

 

             l:是否顯示系統的負載行。隊列長度的合理區間,CPU顆數*0.7

             t: 是否顯示進程摘要信息及CPU負載狀態

              i:平均和單獨CPU負債狀態。

              m: 是否顯示內在相關的狀態

 

            q:退出命令

            s:修改刷新時長

             k:殺死或終止進程

wKiom1loZ9_CW2j5AACT1NA1e1I912.png

top - 00:22:51 up 752 days, 23:04, 55 users,  load average: 0.00, 0.14, 0.43

   系統時間  系統運行時長       用戶數              1 ,5,15分鐘平均數  

Tasks: 1054 total,   1 running, 1051 sleeping,   1 stopped,   1 zombie

  總運行程序數   運行進程   睡眠進程   停止進程   殭屍進程

Cpu(s):  0.5%us,  1.0%sy,  0.0%ni, 98.3%id,  0.1%wa,  0.0%hi,  0.1%si,  0.0%st

       us: user space 用戶空間程序佔用百分比

       sy: system (kernel space) 內核佔用%

       ni: nice,越小越早運行

       id: idle 空閒%

       wa: wait io 等待IO佔用%

       hi: hardware inerrupt 處理硬件中斷佔用%

       si: software interrupt 處理軟件中斷佔用%

       st: stolen 被虛擬機“偷走”的%

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            

PID:進程號

USER:進程所有者

PR:優先級別

NI:進程優先級別數字

VIRT:進程佔用的虛擬內存值

RES:進程佔用的物理內存

SHR:進程使用的共享內存值

S:狀態碼

%CPU:佔用的CPU使用率

%MEM:佔用物理內在和總內存的百分比

TIME+:該進程啓動後佔用的總CPU時間

COMMAND:啓動該進程的命令

 

pstree
pstree:顯示進程狀態樹,pstree命令可以列出當前的進程,以及它們的樹狀結構。 主要選項如下。
-a:顯示執行程序的命令與完整參數。
-c:取消同名程序,合併顯示。
-n:以PID大小排序。
-p:顯示PID。
-u:顯示UID信息。
使用ps命令得到的數據精確,但數據龐大,這一點對掌握系統整體概況來說是不容易的。pstree命令正好可以彌補這個缺憾。它能將當前的執行程序以樹狀結構顯示。pstree命令支持指定特定程序(PID)或使用者(USER)作爲顯示的起始。
常用的命令
pstree -a顯示全部信息
pstree -p顯示進程pid號

 

pidof命令:

  pidof [進程名]

   [root@centos ~]# pidof /usr/sbin/vsftpd

   3339

pgrep 命令

 語法格式:pgrep [OPTIONS] "PATTERN"

                   -U UID: 以指定用戶身體運行

                   -G GID:

                   -l :顯示PID號和進程名

htop:

交互命令:

     u:僅顯示選定用戶的進程

     s:跟蹤選定的進程發起的系統調用

     l:顯示選定的進程打的的文件

     t:顯示進程的層次結構

     a:講進程綁定指定的CPU上

 選項:-d # :延遲時長

       -u USERNAME:僅顯示指定用戶的進程

       -s COLUMN:根據指定的字段排序


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章