日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

十二 个经典 Linux 进程管理命令介绍

發布時間:2023/12/20 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 十二 个经典 Linux 进程管理命令介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

From:http://blog.chinaunix.net/uid-25681671-id-3201927.html

進程和作業管理命令:http://man.linuxde.net/sub/進程和作業管理

Linux 關于 進程/線程 的命令

kill 和 pgrep 和 pidof 和 awk 和 pkill 和 killall:https://blog.csdn.net/freeking101/article/details/53445749

簡介

Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統中當前運行的那些進程。ps命令列出的是當前那些進程的快照,就是執行ps命令的那個時刻的那些進程,如果想要動態的顯示進程信息,就可以使用top命令。要對進程進行監測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,而 ps 命令就是最基本同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等??傊蟛糠中畔⒍际强梢酝ㄟ^執行該命令得到的。
ps 為我們提供了進程的一次性的查看,它所提供的查看結果并不動態連續的;如果想對進程時間監控,應該用 top 或者 htop 。
kill 命令用于殺死進程。

十二 個經典 Linux 進程管理命令介紹

ps、pstree、top、htop、nice、renice、kill、ulimit、w 和 who 和 whoami、pgrep、fg 和 bg、ipcs

  • ps

  • ps 是 Linux 中最基礎的瀏覽系統中的進程的命令。

  • 能列出系統中運行的進程,包括進程號、命令、CPU使用量、內存使用量等

  • ps -a - 列出所有運行中/激活進程

  • ps -ef |grep - 列出需要進程

  • ps -aux - 顯示進程信息,包括無終端的(x)和針對用戶(u)的進程:如USER, PID, %CPU, %MEM等

  • pstree

  • linux中,每一個進程都是由其父進程創建的。pstree以可視化方式顯示進程,通過顯示進程的樹狀圖來展示進程間關系。

  • 如果指定了pid了,那么樹的根是該pid,不然將會是init(pid: 1)。

  • top

  • top 是一個更加有用的命令,可以監視系統中不同的進程所使用的資源。它提供實時的系統狀態信息。

  • 顯示進程的數據包括 PID、進程屬主、優先級、%CPU、%memory等??梢允褂眠@些顯示指示出資源使用量。

  • htop

  • htop與top很類似,但是htop是交互式的文本模式的進程查看器。

  • 它通過文字圖形化地顯示每一個進程的CPU和內存使用量、swap使用量。

  • 使用上下光標鍵選擇進程,F7和F8改變優先級,F9殺死進程。Htop不是系統默認安裝的,所以需要額外安裝

  • nice

  • 通過nice命令的幫助,用戶可以設置和改變進程的優先級。提高一個進程的優先級,內核會分配更多CPU時間片給這個進程。

  • 默認情況下,進程以0的優先級啟動。進程優先級可以通過top命令顯示的NI(nice value)列查看。

  • 進程優先級值的范圍從-20到19。值越低,優先級越高。

  • nice <優先值> <進程名> - 通過給定的優先值啟動一個程序

  • ?
  • ?
  • renice

  • renice命令類似nice命令。使用這個命令可以改變正在運行的進程優先值。

  • 注意,用戶只能改變屬于他們自己的進程的優先值。

  • renice -n -p - 改變指定進程的優先值

  • renice -u -g - 通過指定用戶和組來改變進程優先值

  • kill

  • 這個命令用于發送信號來結束進程。如果一個進程沒有響應殺死命令,這也許就需要強制殺死,使用-9參數來執行。

  • 注意,使用強制殺死的時候一定要小心,因為進程沒有時機清理現場,也許寫入文件沒有完成。

  • 如果我們不知道進程PID或者打算用名字殺死進程時候,killall就能派上用場。

  • kill <pid>

  • kill -9 <pid>

  • killall -9 - 殺死所有擁有同樣名字的進程

  • 如果你使用kill,你需要知道進程ID號。pkill是類似的命令,但使用模式匹配,如進程名,進程擁有者等。

  • pkill <進程名>

  • ulimit

  • -f - 最大文件尺寸大小

  • -v - 最大虛擬內存大小(KB)

  • -n - 增加最大文件描述符數量

  • -H : 改變和報告硬限制

  • -S : 改變和報告軟限制

  • 該命令用于控制系統資源在shell和進程上的分配量。

  • 對于系統管理員是最有用的,可以管理重度使用和存在性能問題的系統。

  • 限制資源大小可以確保重要進程持續運行,其他進程不會占用過多資源。

  • ulimit -a - 顯示當前用戶關聯的資源限制

  • w

  • 提供當前登錄的用戶及其正在執行的進程的信息。

  • 顯示信息頭包含信息,如當前時間、系統運行時長、登錄用戶總數、過去的1,5,15分鐘內的負載均衡數。

  • 基于這些用戶信息,用戶在終止不屬于他們的進程時要小心。

  • who

  • 是和 w 類似命令,提供當前登錄用戶列表、系統啟動時間、運行級別等。

  • whoami 命令輸出當前用戶ID

  • pgrep

  • pgrep的意思是”進程號全局正則匹配輸出”。

  • 該命令掃描當前運行進程,然后按照命令匹配條件列出匹配結果到標準輸出。對于通過名字檢索進程號是很有用。

  • pgrep -u mint sh

  • 這個命令將會顯示用戶為‘mint’和進程名為‘sh’的進程ID。

  • fg , bg

  • 有時,命令需要很長的時間才能執行完成。對于這種情況,我們使用‘bg’命令可以將任務放在后臺執行,而用‘fg’可以調到前臺來使用。

  • 我們可以通過‘&’在后臺啟動一個程序:

  • find . -name *iso > /tmp/res.txt &

  • 一個正在運行的程序也可以通過“CTRL+Z”和“bg”命令組合放到后臺運行。

  • find . -name *iso > /tmp/res.txt & - 啟動一個程序

  • ctrl+z - 掛起當前執行程序

  • bg - 將程序放到后臺運行

  • 我們可以使用‘jobs’命令列出所有后臺進程。

  • jobs

  • 使用‘fg’命令可以將后臺程序調到前臺執行。

  • fg %進程id

  • ipcs

  • ipcs命令報告進程間通信設施狀態。(共享內存,信號量和消息隊列)

  • 用-p參數聯合-m、-s或-q使用,可以獲得相關的進程間通信的進程ID。

  • ipcs -p -m

  • linux上進程有5種狀態

    5種進程狀態

    1. 運行(正在運行或在運行隊列中等待) 2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號) 3. 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生) 4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用后釋放) 5. 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號后停止運行運行)

    ps工具標識進程的5種狀態碼:?

  • D 不可中斷 uninterruptible sleep (usually IO)

  • R 運行 runnable (on run queue)

  • S 中斷 sleeping

  • T 停止 traced or stopped

  • Z 僵死 a defunct (”zombie”) process

  • ps命令支持三種使用的語法格式

    三種語法格式

  • 1.UNIX 風格,選項可以組合在一起,并且選項前必須有“-”連字符

  • 2.BSD 風格,選項可以組合在一起,但是選項前不能有“-”連字符

  • 3.GNU 風格的長選項,選項前有兩個“-”連字符

  • 能夠混用這幾種風格,但是可能會發生沖突。較多使用 UNIX 風格的ps命令。

    日常生活中使用的ps命令的例子(UNIX 風格)。

  • 1. 不加參數執行ps命令. 這是一個基本的 ps 使用

  • 2. 顯示所有當前進程. 使用 -a 參數。-a 代表 all。同時加上x參數會顯示沒有控制終端的進程。ps -ax | less

  • 3. 根據用戶過濾進程. 在需要查看特定用戶進程的情況下,我們可以使用 -u 參數。

  • 比如我們要查看用戶'pungki'的進程,可以通過下面的命令: $ ps -u pungki

  • 4. 通過cpu和內存使用來過濾進程. ps -aux | less 默認的結果集是未排序的。

  • 可以通過 --sort命令來排序。. 根據 CPU 使用來升序排序. ps -aux --sort -pcpu | less

  • 根據 內存使用 來升序排序 .ps -aux --sort -pmem | less

  • ps -aux --sort -pcpu,+pmem | head -n 10

  • 5. 通過進程名和PID過濾

  • 使用 -C 參數,后面跟你要找的進程的名字。比如想顯示一個名為getty的進程的信息,就可以使用下面的命令:

  • $ ps -C getty

  • 如果想要看到更多的細節,我們可以使用-f參數來查看格式化的信息列表:$ ps -f -C getty

  • 6. 根據線程來過濾進程. 如果我們想知道特定進程的線程,可以使用-L 參數,后面加上特定的PID。$ ps -L 1213

  • 7. 樹形顯示進程. 有時候我們希望以樹形結構顯示進程,可以使用 -axjf 參數。 $ps -axjf. 或者使用另一個命令:pstree

  • 8. 顯示安全信息. 如果想要查看現在有誰登入了你的服務器。可以使用ps命令加上相關參數:$ ps -eo pid,user,args

  • 參數 -e 顯示所有進程信息,-o 參數控制輸出。Pid,User 和 Args參數顯示PID,運行應用的用戶和該應用。

  • 9. 格式化輸出root用戶(真實的或有效的UID)創建的進程

  • 系統管理員想要查看由root用戶運行的進程和這個進程的其他相關信息時,可以通過下面的命令:

  • $ ps -U root -u root u

  • -U 參數按真實用戶ID(RUID)篩選進程,它會從用戶列表中選擇真實用戶名或 ID。真實用戶即實際創建該進程的用戶。

  • -u 參數用來篩選有效用戶ID(EUID)。

  • 最后的u參數用來決定以針對用戶的格式輸出,由User, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME 和 COMMAND這幾 列組成。

  • 10. 使用PS實時監控進程狀態. ps 命令會顯示你系統當前的進程狀態,但是這個結果是靜態的。

  • 當有一種情況,我們需要像上面第四點中提到的通過CPU和內存的使用率來篩選進程,并且我們希望結果能夠每秒刷新一次。

  • 為此,我們可以將ps命令和watch命令結合起來。$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’

  • 如果輸出太長,我們也可以限制它,比如前20條,我們可以使用head命令來做到。

  • $ watch -n 1 ‘ps -aux --sort -pmem, -pcpu | head 20’

  • 這里的動態查看并不像top或者htop命令一樣。但是使用ps的好處是你能夠定義顯示的字段,你能夠選擇你想查看的字段。

  • 舉個例子,如果你只需要看名為'pungki'用戶的信息,你可以使用下面的命令:

  • $ watch -n 1 ‘ps -aux -U pungki u --sort -pmem, -pcpu | head 20’

  • 一些參數和使用實例

    一些參數

  • -A 列出所有的進程

  • -w 顯示加寬可以顯示較多的資訊

  • -au 顯示較詳細的資訊

  • -aux 顯示所有包含其他使用者的行程

  • ############################################################

  • 常用參數:

  • -A 顯示所有進程(等價于-e)(utility)

  • -a 顯示一個終端的所有進程,除了會話引線

  • -N 忽略選擇。

  • -d 顯示所有進程,但省略所有的會話引線(utility)

  • -x 顯示沒有控制終端的進程,同時顯示各個命令的具體路徑。dx不可合用。(utility)

  • -p pid 進程使用cpu的時間

  • -u uid or username 選擇有效的用戶id或者是用戶名

  • -g gid or groupname 顯示組的所有進程。

  • U username 顯示該用戶下的所有進程,且顯示各個命令的詳細路徑。如:ps U zhang;(utility)

  • -f 全部列出,通常和其他選項聯用。如:ps -fa or ps -fx and so on.

  • -l 長格式(有F,wchan,C 等字段)

  • -j 作業格式

  • -o 用戶自定義格式。

  • v 以虛擬存儲器格式顯示

  • s 以信號格式顯示

  • -m 顯示所有的線程

  • -H 顯示進程的層次(和其它的命令合用,如:ps -Ha)(utility)

  • e 命令之后顯示環境(如:ps -d e; ps -a e)(utility)

  • h 不顯示第一行

  • 使用實例

  • ############################################################

  • ps命令常用用法(方便查看系統進程)

  • 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 root  顯示root用戶信息

  • 13)ps x  顯示所有程序,不以終端機來區分。

  • 最常用的方法是ps -aux,然后再利用一個管道符號導向到grep去查找特定的進程,然后再對特定的進程進行操作。

  • ############################################################

  • 實例3:顯示所有進程信息,連同命令行

  • 命令:ps -ef

  • 實例4:ps 與grep 常用組合用法,查找特定進程

  • 命令:ps -ef|grep ssh

  • 實例5:將目前屬于您自己這次登入的 PID 與相關信息列示出來

  • 命令:ps -l

  • 說明:

  • 各相關信息的意義:

  • F 代表這個程序的旗標 (flag), 4 代表使用者為 super user

  • S 代表這個程序的狀態 (STAT),關于各 STAT 的意義將在內文介紹

  • UID 程序被該 UID 所擁有

  • PID 就是這個程序的 ID !

  • PPID 則是其上級父程序的ID

  • C CPU 使用的資源百分比

  • PRI 這個是 Priority (優先執行序) 的縮寫,詳細后面介紹

  • NI 這個是 Nice 值,在下一小節我們會持續介紹

  • ADDR 這個是 kernel function,指出該程序在內存的那個部分。如果是個 running的程序,一般就是 "-"

  • SZ 使用掉的內存大小

  • WCHAN 目前這個程序是否正在運作當中,若為 - 表示正在運作

  • TTY 登入者的終端機位置

  • TIME 使用掉的 CPU 時間。

  • CMD 所下達的指令為何

  • 在預設的情況下, ps 僅會列出與目前所在的 bash shell 有關的 PID 而已,所以, 當我使用 ps -l 的時候,只有三個 PID。

  • 實例6:列出目前所有的正在內存當中的程序

  • 命令:ps aux

  • 說明:

  • USER:該 process 屬于那個使用者賬號的

  • PID :該 process 的號碼

  • %CPU:該 process 使用掉的 CPU 資源百分比

  • %MEM:該 process 所占用的物理內存百分比

  • VSZ :該 process 使用掉的虛擬內存量 (Kbytes)

  • RSS :該 process 占用的固定的內存量 (Kbytes)

  • TTY :該 process 是在那個終端機上面運作,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程序,若為 pts/0 等等的,則表示為由網絡連接進主機的程序。

  • STAT:該程序目前的狀態,主要的狀態有

  • R :該程序目前正在運作,或者是可被運作

  • S :該程序目前正在睡眠當中 (可說是 idle 狀態),但可被某些訊號 (signal) 喚醒。

  • T :該程序目前正在偵測或者是停止了

  • Z :該程序應該已經終止,但是其父程序卻無法正常的終止他,造成 zombie (疆尸) 程序的狀態

  • START:該 process 被觸發啟動的時間

  • TIME :該 process 實際使用 CPU 運作的時間

  • COMMAND:該程序的實際指令

  • 實例7:列出類似程序樹的程序顯示

  • 命令:ps -axjf

  • 實例8:找出與 cron 與 syslog 這兩個服務有關的 PID 號碼

  • 命令:ps aux | egrep '(cron|syslog)'

  • 3. 輸出指定的字段

  • 命令:ps -o pid,ppid,pgrp,session,tpgid,comm

  • 注意:"ps aux"和"ps -aux"不相同。例如"-u"用來顯示該用戶的進程。但是"u"則是顯示詳細的信息。
  • BSD風格:在BSD風格的語法選項前不帶連字符。例如: ps aux

  • UNIX/LINUX的風格:在linux風格的語法選項前面有一個破折號.例如: ps -ef

  • 混合使用兩種Linux系統上的語法風格是好事兒。例如“ps ax -f”。

  • 1、顯示所有進程:

  • $ ps ax

  • $ ps -ef

  • "u"或者"-f"參數來顯示所有進程的詳細信息

  • $ ps aux

  • $ ps -ef -f

  • 注意:為什么用戶列不顯示我的用戶名,但顯示其他用戶,如root、www等,對于所有的用戶名(包括你)如果長度大于8個字符,然后ps將只顯示UID,而不是用戶名。

  • 2、根據用戶顯示進程:

  • 由進程的所屬用戶使用“-u”選項后跟用戶名來顯示。多個用戶名可以提供以逗號分隔。

  • $ ps -f -u www-data

  • 3、通過名字和進程ID顯示進程:

  • 通過名字或命令搜索進程,使用“-C”選項后面加搜索詞。

  • $ ps -C apache2

  • 4、根據CPU或者內存進行排序:

  • “–sort”選項由逗號分隔的多個字段可以用指定。此外,該字段可以帶有前綴“-”或“”符號,表示降序或升序分別排序。通過進程列表進行排序有很多參數,你可以檢查手冊頁的完整列表。

  • $ ps aux --sort=-pcpu,+pmem

  • $ ps aux --sort=-pcpu | head -5

  • 5、用樹的風格顯示進程的層次關系:

  • 許多進程實際上是一些父進程分的分支,知道這父子進程關系往往是有用的。在'–forest'選項將建立ASCII藝術風格層次的樹視圖。

  • 下面的命令將搜索進程名字為Apache2,形成一個樹結構來顯示詳細的信息。

  • $ ps -f --forest -C apache2

  • 6、顯示一個父進程的子進程:

  • 這里有一個例子顯示所有apache進程的分支

  • $ ps -o pid,uname,comm -C apache2

  • 7、顯示一個進程的線程:

  • “-L”選項將顯示進程的線程。它可以用來顯示特定進程的所有線程或者所有進程。

  • 下面的命令將顯示所有id為3150的進程所擁有的線程。

  • $ ps -p 3150 -L

  • 8、改變要顯示的列:

  • ps命令可以配置為只顯示選中的列表。為了顯示完整列表可以查看手冊。

  • 下面的命令只顯示PID,用戶名,CPU,內存和命令的列。

  • $ ps -e -o pid,uname,pcpu,pmem,comm

  • 可以重命名列標簽,相當的靈活。

  • $ ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm

  • 9、顯示進程運行的時間:

  • 表示進程的運行時間。對于運行的時間,列默認情況下是不顯示的,可以使用“-O”選項查看。

  • $ ps -e -o pid,comm,etime

  • 10、把ps命令變成一個實時查看器:

  • 像往常一樣,watch命令可以用來實時捕捉ps顯示進程。簡單的例子如下:

  • $ watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15'

  • 要對系統中進程進行監測控制,查看狀態,內存,CPU的使用情況,使用命令:/bin/ps
    (1) ps :是顯示瞬間進程的狀態,并不動態連續;
    (2) top:如果想對進程運行時間監控,應該用 top 命令;
    (3) kill 用于殺死進程或者給進程發送信號;
    (4) 查看文章最后的man手冊,可以查看ps的每項輸出的含義,to find: STANDARD FORMAT SPECIFIERS

    ===================================ps 的參數說明=============================

  • l 長格式輸出;

  • u 按用戶名和啟動時間的順序來顯示進程;

  • j 用任務格式來顯示進程;

  • f 用樹形格式來顯示進程;

  • a 顯示所有用戶的所有進程(包括其它用戶)。顯示所有進程

  • -a 顯示同一終端下的所有程序

  • x 顯示無控制終端的進程;

  • r 顯示運行中的進程;

  • ww 避免詳細參數被截斷;

  • -A 列出所有的進程

  • -w 顯示加寬可以顯示較多的資訊

  • -au 顯示較詳細的資訊

  • -aux 顯示所有包含其他使用者的進程

  • -e 顯示所有進程,環境變量

  • -f 全格式

  • -h 不顯示標題

  • -l 長格式

  • -w 寬輸出

  • a 顯示終端上地所有進程,包括其他用戶地進程

  • r 只顯示正在運行地進程

  • x 顯示沒有控制終端地進程

  • 我們常用的選項是組合是 aux 或 lax,還有參數 f 的應用。

  • pids 只列出進程標識符,之間運用逗號分隔.該進程列表必須在命令行參數地最后一個選項后面緊接著給出,中間不能插入空格.比如:ps -f1,4,5 顯示的是進程ID為1,4,5的進程

  • 下介紹長命令行選項,這些選項都運用“--”開頭:

  • --sort X[+|-] key [,[+|-] key [,…]] 從SORT KEYS段中選一個多字母鍵.“+”字符是可選地,因為默認地方向就是按數字升序或者詞典順序,“-”字符是逆序排序(即降序).

  • 比如: ps -jax -sort=uid,-ppid,+pid.

  • --help 顯示幫助信息.

  • --version 顯示該命令地版本信息.

  • 在前面地選項說明中提到了排序鍵,接下來對排序鍵作進一步說明.需要注意地是排序中運用地值是ps運用地內部值,并非僅用于某些輸出格式地偽值.排序鍵列表見下表.

  • ============排序鍵列表==========================

  • c cmd 可執行地簡單名稱

  • C cmdline 完整命令行

  • f flags 長模式標志

  • g pgrp 進程地組ID

  • G tpgid 控制tty進程組ID

  • j cutime 累計用戶時間

  • J cstime 累計系統時間

  • k utime 用戶時間

  • K stime 系統時間

  • m min_flt 次要頁錯誤地數量

  • M maj_flt 重點頁錯誤地數量

  • n cmin_flt 累計次要頁錯誤

  • N cmaj_flt 累計重點頁錯誤

  • o session 對話ID

  • p pid 進程ID

  • P ppid 父進程ID

  • r rss 駐留大小

  • R resident 駐留頁

  • s size 內存大小(千字節)

  • S share 共享頁地數量

  • t tty tty次要設備號

  • T start_time 進程啟動地時間

  • U uid UID

  • u user 用戶名

  • v vsize 總地虛擬內存數量(字節)

  • y priority 內核調度優先級

  • ps aux 或 lax 輸出的解釋

    ========================================ps aux 或 lax 輸出的解釋=========================

  • 2、ps aux 或 lax 輸出的解釋

  • au(x) 輸出格式 :

  • USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

  • USER: 進程所有者

  • PID: 進程ID

  • %CPU: 占用的 CPU 使用率

  • %MEM: 占用的內存使用率

  • VSZ: 占用的虛擬內存大小

  • RSS: 占用的內存大小

  • TTY: 終端的次要裝置號碼 (minor device number of tty)

  • STAT: 進程狀態:

  • START: 啟動進程的時間;

  • TIME: 進程消耗CPU的時間;

  • COMMAND:命令的名稱和參數

  • ?

    進程 stat 狀態

  • =========================================進程STAT狀態==================================

  • D 無法中斷的休眠狀態(通常 IO 的進程);

  • R 正在運行,在可中斷隊列中;

  • S 處于休眠狀態,靜止狀態;

  • T 停止或被追蹤,暫停執行;

  • W 進入內存交換(從內核2.6開始無效);

  • X 死掉的進程;

  • Z 僵尸進程不存在但暫時無法消除;

  • W: 沒有足夠的記憶體分頁可分配

  • WCHAN 正在等待的進程資源;

  • <: 高優先級進程

  • N: 低優先序進程

  • L: 有記憶體分頁分配并鎖在記憶體內 (即時系統或捱A I/O),即,有些頁被鎖進內存

  • ?
  • s 進程的領導者(在它之下有子進程);

  • l 多進程的(使用 CLONE_THREAD, 類似 NPTL pthreads);

  • + 位于后臺的進程組;

  • ?

    kill 終止進程

  • ========================================kill 終止進程================================

  • kill 終止進程

  • 有十幾種控制進程的方法,下面是一些常用的方法:

  • kill -STOP [pid]

  • 發送SIGSTOP (17,19,23)停止一個進程,而并不消滅這個進程。

  • kill -CONT [pid]

  • 發送SIGCONT (19,18,25)重新開始一個停止的進程。

  • kill -KILL [pid]

  • 發送SIGKILL (9)強迫進程立即停止,并且不實施清理操作。

  • kill -9 -1

  • 終止你擁有的全部進程。

  • SIGKILL 和 SIGSTOP 信號不能被捕捉、封鎖或者忽略,但是,其它的信號可以。所以這是你的終極武器。

  • ?

    ?

    ==================================================范例==============================
    $ ps
    PID TTY TIME COMMAND
    5800 ttyp0 00:00:00 bash
    5835 ttyp0 00:00:00 ps
    可以看到,顯示地項目共分為四項,依次為PID(進程ID)、TTY(終端名稱)、TIME(進程執行時 間)、COMMAND(該進程地命令行輸入).
    可以運用u選項來查看進程所有者及其他少許詳細信息,如下所示:
    $ ps u
    USER PID %CPU %MEM USZ RSS TTY STAT START TIME COMMAND
    test 5800 0.0 0.4 1892 1040 ttyp0 S Nov27 0:00 -bash
    test 5836 0.0 0.3 2528 856 ttyp0 R Nov27 0:00 ps u
    在bash進程前面有條橫線,意味著該進程便是用戶地登錄shell,所以對于一個登錄用戶來說帶短橫線地進程只有一個.還可以看 到%CPU、%MEM兩個選項,前者指該進程占用地CPU時間
    和總時間地百分比;后者指該進程占用地內存和總內存地百分比.
    在這種情況下看到了所有控制終端地進程;當然對于其他那些沒有控制終端地進程 還是沒有觀察到,所以這時就需要運用x選項.運用x選項可以觀察到所有地進程情況.
    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  顯示所有程序,不以終端機來區分。


     最常用的方法是ps -aux,然后再用管道符號導向到grep去查找特定的進程,然后再對特定的進程進行操作。
    ==================================================
    luther@gliethttp:~$ ps --help
    ********* simple selection ********* ********* selection by list *********
    -A all processes -C by command name
    -N negate selection -G by real group ID (supports names)
    -a all w/ tty except session leaders -U by real user ID (supports names)
    -d all except session leaders -g by session OR by effective group name
    -e all processes -p by process ID
    T all processes on this terminal -s processes in the sessions given
    a all w/ tty, including other users -t by tty
    g OBSOLETE -- DO NOT USE -u by effective user ID (supports names)
    r only running processes U processes for specified users
    x processes w/o controlling ttys t by tty
    *********** output format ********** *********** long options ***********
    -o,o user-defined -f full --Group --User --pid --cols --ppid
    -j,j job control s signal --group --user --sid --rows --info
    -O,O preloaded -o v virtual memory --cumulative --format --deselect
    -l,l long u user-oriented --sort --tty --forest --version
    -F extra full X registers --heading --no-heading --context
    ********* misc options *********
    -V,V show version L list format codes f ASCII art forest
    -m,m,-L,-T,H threads S children in sum -y change -l format
    -M,Z security data c true command name -c scheduling class
    -w,w wide output n numeric WCHAN,UID -H process hierarchy

    ?

    總結

    以上是生活随笔為你收集整理的十二 个经典 Linux 进程管理命令介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。