Linux進程管理相關命令詳述

來源:互聯網
上載者:User

Linux進程管理相關命令詳述

Linux系統上與進程有關的命令:

查看類命令:

ps,pstree,pidof,pgrep\pkill,top,htop,glances,dstat,vmstat,pmap

管理類命令:

bg,fg,jobs,kill,killall,nohup,nice,renice

pstree命令:

pstree - display a tree of processes

顯示進程之間的關係,用樹狀圖表示

ps命令:

   ps - report a snapshot of the current processes.

   顯示當前進程的資訊;

   ps [option]

   1 UNIX 風格;必須在選項前邊加上-;

   2 BSD 風格;在選項前邊不能有-;

   3 GUN 風格;再選項前邊必須有兩個-;

欄位含義:

USER:進程的屬主;進程的發起者;

PID:標識進程的唯一性的數位識別碼符;

CPU:進程在執行過程中佔用的CPU處理時間的百分比;

%MEM;進程佔用的實體記憶體百分比;

VSZ:虛擬記憶體集,可交換記憶體集;

RSS:常駐記憶體集,不可交換記憶體集;

TTY:進程與哪個終端有關聯的,"?"則表示與終端無關; 

STAT:

R    運行狀態;running or runnable (on run queue)
S    可中斷睡眠態; interruptible sleep (waiting for an event to complete)
D    不可終端睡眠態; uninterruptible sleep (usually IO)
t    在跟蹤期間被停止;stopped by debugger during the tracing
T    停止進程式控制制訊號;stopped by job control signal
X    死進程; dead (should never be seen)
Z    殭屍進程; defunct ("zombie") process, terminated but not reaped by its parent
<    高優先順序; high-priority (not nice to other users)
N    低優先順序; low-priority (nice to other users)
L    頁面是否鎖進記憶體中;has pages locked into memory (for real-time and custom IO)
s    會話領導; is a session leader
l    多線程;is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
+    前進程組; is in the foreground process group

START:至今仍未被結束的進程被開啟的時間戳記;

TIME:當前進程累計佔用CPU的總時間;

COMMAND:啟動該進程的命令列參數;

BSD風格的選項:

a:顯示所有與終端相關的進程;

x:顯示所有與終端無關的進程;

u:顯示發起進程的使用者賬戶名稱;

o format:以自訂的欄位,顯示ps命令的執行結果;

UNIX風格的選項:

-u:顯示與指定使用者相關的進程;

-e:顯示所有的進程

-f:顯示完整格式的進程資訊:

   PPID:父進程的pid

   C:表示進程佔用的CPU的時間的百分比

-F:顯示完整格式的記憶體資訊:(多了幾項內容)

   SZ:虛擬記憶體集

   RSS:常駐記憶體集

   PSR:執行此進程的CPU的核心編號

-H:顯示進程的層級結構(父子關係)

-o format:以自訂的欄位,顯示ps命令的執行過結果;

pgrep,pkill命令

pgrep, pkill - look up or signal processes based on name and other attributes

pgrep是查詢進程

pkill是殺掉進程

pgrep  [option]  pattern

pkill [option] pattern

-U, --uid :顯示進程的真實使用者ID

-u:顯示進程的有效使用者ID

-t terminal:顯示與指定終端關聯的進程;

-a:顯示進程的完整命令列參數;

比如:

   我在kill掉我的ssh後,我的 X shell 就斷開了,因為 X shell 是基於ssh協議來進行遠端連線的,我只能在我的虛擬機器上重啟了一下ssh進程;

然後,我的 X shell 才可以正常連上;

pidof:

pidof -- find the process ID of a running program.

根據指定的正在啟動並執行進程名稱尋找其對於的進程號;

top命令:

   top - display Linux processes

當在linux中輸入top時;我們會看到的動態顯示資訊:解釋一下具體的資訊

第一行:

   當前系統時間;

   系統自上次斷電以後啟動並執行總時間長度;

   當前登入系統的使用者的總數;

   在過去的1分鐘,5分鐘,15分鐘的三個時間段內,CPU上等待執行的進程的隊列的長度。

第二行:

   系統中啟動並執行進程的總數;

   正在啟動並執行進程數;

   處於睡眠態的進程數;

   已停止的進程數;

   僵死態的進程數;

第三行:各類進程佔用CPU時間的百分比的統計資訊

   us:user space,使用者空間中的進程佔用CPU時間的百分比;

   sy:system,核心空間中的核心進程佔用CPU時間的百分比;

   ni:nice,使用nice值調整了進程的優先順序之後額外多佔CPU時間的百分比;

   id:idel,CPU空閑時間的百分比;

   wa:waiting,等待IO完成的進程佔用的CPU時間的百分比;

   hi:hardware interupting,處理硬體中斷事件所限號的CPU時間的百分比;

   si:software interupting,處理軟體中斷事件所限號的CPU時間的百分比;

   st:stolen,被虛擬化程式等進程偷偷佔用的CPU時間的百分比;

第四行:以kib為單位顯示實體記憶體空間的使用方式的統計資訊;

   total:實體記憶體空間的總大小;

   free:閒置物理空間大小;

   userd:已經被使用的物理空間的大小,不可回收;

   buff/cache:用於緩衝區和緩衝區的實體記憶體的空間大小;這段記憶體是可以隨時回收,並不算真正的消耗;    

第五行:以kib為單位顯示swap空間的使用方式的統計資訊;

   total:swap空間的總大小;

free:swap空間剩餘空間大小;

used:已經被佔用的swap空間大小;

   avail mem:真正的可用的實體記憶體的空間大小;

互動式命令:(在進入介面之後才會生效的命令)

    1:顯示或隱藏CPU各核心的詳細資料;

P:根據各個進程對CPU時間的佔用百分比進行降序排序;

M:根據各個進程對實體記憶體空間佔用的百分比進行降序排序;

T:根據各個進程對CPU時間佔用的百分比進行降序排序;

l:顯示或隱藏第一行,uptime等資訊;

t:顯示或隱藏第二、三行資訊

m:顯示或隱藏第四、五行資訊

q:退出top的互動式模式

s:修改top命令的重新整理時間間隔;

k:向指定PID的進程發送指定的訊號;

       訊號:kill -l查詢

常用的選項:

   -d #:指定top互動式模式中的重新整理間隔,預設是3秒;

   -b:非互動式顯示結果

vmstat命令:

Procs

r: 等待啟動並執行進程數

b: 處在非中斷睡眠狀態的進程數

w: 被交換出去的可啟動並執行進程數。

     此數由 linux 計算得出,但 linux 並不耗盡交換空間

Memory

swpd: 虛擬記憶體使用方式,單位:KB

free: 閒置記憶體,單位KB

buff: 被用來做為緩衝的記憶體數,單位:KB

Swap

si: 從磁碟交換到記憶體的交換頁數量,單位:KB/秒

o: 從記憶體交換到磁碟的交換頁數量,單位:KB/秒

IO

bi: 發送到塊裝置的塊數,單位:塊/秒

bo: 從塊裝置接收到的塊數,單位:塊/秒

System

in: 每秒的中斷數,包括時鐘中斷

cs: 每秒的環境(上下文)切換次數

CPU

按 CPU 的總使用百分比來顯示

us: CPU 使用時間

sy: CPU 系統使用時間

id: 閑置時間

常用選項:

-a,--active:顯示活躍的以及非活躍的記憶體空間數量;

-s,--stats:從/proc/meminfo檔案中抽取的資訊,加工後輸出;

delay:指示在指定的時間重複執行vmstat命令;預設單位為秒;

count:重複執行vmstat命令的次數;

pmap命令:

pmap - report memory map of a process

pmap [options] pid [...]

 -x, --extended:顯示擴充資訊;

htop - interactive process viewer

htop [-dChusv]

常用選項:

   -d --delay=DELAY:htop命令的資料重新整理時間間隔;

    -s:根據指定的欄位進行排序;

    -u:僅顯示指定使用者擁有的進程;

常用的互動式命令:

    l:顯示指定進行所有開啟的檔案清單;

    t:顯示進程樹結構,可以顯示出進程之間的父子關係;相當於F5鍵的功能;

    a:設定進程的CPU親源性,將選定進程的綁定至某個CPU核心上運行;

glances:

glances - A cross-platform curses-based monitoring tool

glances [-bdmn] [-t refresh] [-f file] [-o output]

常用選項:

   -b:以Byte為單位顯示網卡的資料通訊速率;預設是位元每秒;

    -d:禁用disk I/O模組;

    -m:禁用mount模組;

    -n:禁用network模組;

    -t refresh:以秒為單位指定資料重新整理時間間隔;

    -f /PATH/TO/OUTPUT_DIR:指定輸出檔案的路徑;

    -o {HTML|CSV}:為輸出到檔案的資料指定資料格式;

    -s:將glances進程作為服務進程,因此可以提供基於通訊端的網路訪問;

    -B @IP|HOST:將glances進程綁定到指定的IP地址上;通常與-s選項一起使用;

glances可以工作於C/S模型下;

    S:伺服器模式

     # glances -s -B IPADDR

     IPADDR指的是伺服器上本地某個可用的IP地址;

    C:用戶端模式

     # glances -c SERVER_IPADDR

     SERVER_IPADDR指的是從遠程用戶端是哪個發起串連的目標伺服器的IP地址;

glances互動式操作命令;

    b:網路模組中的速率統計在bps和Bps間切換;

    c:根據CPU佔用率進行進程排序;

    m:根據記憶體佔用率進行進程排序;

    n:隱藏或顯示NERWORK模組;

   d:隱藏或顯示DISK模組;

   f:隱藏或顯示FILE模組;

   t:恢複預設進程排序;

   h:顯示help協助資訊;

   ....

dstat:

dstat - versatile tool for generating system resource statistics

stat [-afv] [options..] [delay [count]]

常用選項:

    -c,--cpu:僅顯示與CPU相關的統計資訊;

    -d,--disk:僅顯示與磁碟等IO裝置相關的統計資訊;

    -g,--page:僅顯示與page相關的資訊;

    -n,--net:僅顯示與網路介面相關的統計資訊;

    -s,--swap:僅顯示與交換分區相關的統計資訊;

    -y,--system:僅顯示與系統相關的統計資訊;

    --tcp:僅顯示與TCP協議的串連狀態相關的統計資訊;

    --udp:僅顯示與UDP協議的串連狀態相關的統計資訊;

kill:

kill - 終止進程

kill [-s signal|-p] [--] pid...

kill -l [signal]:查看當前系統中支援的訊號的種類和訊號名稱;

有效訊號表示方法:

  1.使用訊號的數字編碼進行訊號表示;

  2.使用訊號的完整名稱進行訊號表示;

  3.使用訊號的簡寫名稱進行訊號表示;簡寫名稱不包含"SIG"的其餘部分;

常用的訊號:

  1) SIGHUP: 無需關閉對應進程而直接讓其重新讀取其自身的設定檔;

  2) SIGINT:終止運行於前台的進程,使用Ctrl+c按鍵組合,可以發送此訊號;

  9) SIGKILL: 沒有任何預兆終止正在啟動並執行進程,進程所有佔用的資源都不會被立即回收;

  15) SIGTERM:kill命令預設發送的訊號;終止進程的運行,

  18) SIGCONT:讓轉入背景進程在後台繼續運行;

  19) SIGSTOP:讓轉入背景進程在後台停止運行;

killall

killall - 以名字方式來殺死進程

killall [options] ...PROCRSS_NAME..

常用選項:

   -u:僅向指定所有者所擁有的進程發送訊號;

 -s:向指定名稱的進程發送指定的非SIGTERM訊號;

 -I:忽略進程名稱大小寫區別;

進程作業:

前台作業:

    foreground jobs,一般是通過終端啟動並且在啟動後一直佔據終端的進程;

後台作業:

    background jobs,一般系統啟動時隨系統啟動,也可以通過終端啟動,但啟動後理解釋放對終端的佔用,此時我們稱其為"後台運行";

使進程從前台轉移至後台:

    1.正在啟動並執行前台作業;

    Ctrl+z

    2.對於尚未啟動的進程,使其在啟動後自動轉入後台:

# COMMAND &

注意:此類從前台啟動直接轉入後台啟動並執行進程,始終是與終端有關的進程,因此,如果終端被關閉,或shell進程被終止,則此類進程也會被終止;

3.對於尚未啟動的進程,使其在啟動後自動轉入後台,並同時剝離其與終端的關聯關係;

    # nohup COMMAND &

查看後台作業的資訊:

jobs

將後台作業轉入到前台運行:

fg [JOB_ID]

 注意:如果省略JOB_ID,則在後台進程中以"+"標識的作業會被轉入前台;

終止後台進程作業:

kill %JOB_ID:將後台作業結束;

調整進程優先順序的命令;

    nice,renice

進程的優先順序:

    0-139

0

1-99

100-139:動態優先順序;通過調整進程的nice值來改變進程的動態優先順序;

 NICE值的取值範圍:-20~19

預設情況下,所有使用者進程的動態優先順序都是120,而所有進程的NICE值預設都為0;

只有超級使用者root才能使用附屬的NICE值,進而提升進程的優先順序;普通使用者僅能使用正數的NICE值,進而降低進程的優先順序;

nice

nice - run a program with modified scheduling priority

nice [OPTION] [COMMAND [ARG]...]

    -n:為後面的進程調整nice值;預設為10;

renice:

renice - alter priority of running processes

renice [-n] priority [-gpu] identifier...

常用選項:

   -n priority :設定此次要調整的nice值;即在原有的nice值之上追加上此處指定的數量;

-p pid:

本文永久更新連結地址:https://www.bkjia.com/Linux/2018-03/151483.htm

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.