linux程序及程序檢視ps命令
程序
程序
程式的執行例項就是程序,系統為程序分配一個唯一的數字識別符號,就是程序ID(process ID)。
程序組
每個程序除了有一程序ID外,還屬於一個程序組,程序組是一個或者多個程序的集合。每個程序組有一個唯一的程序組ID。
一般重定向會產生一個程序組,先執行兩個重定向,然後通過ps,可以檢視有兩個程序組id,即2125和2177
[email protected]:tmp$ tail -f word.txt|grep test &
[email protected]:tmp$ tail -f a.log | grep adfs &
[email protected]:tmp$ ps -O pgid
PID PGID S TTY TIME COMMAND
2098 2098 S pts/0 00:00:00 bash
2125 2125 S pts/0 00:00:00 tail -f word.txt
2126 2125 S pts/0 00:00:00 grep --color=auto test
2177 2177 S pts/0 00:00:00 tail -f a.log
2178 2177 S pts/0 00:00:00 grep --color=auto adfs
2202 2202 R pts/0 00:00:00 ps -O pgid
會話
會話(session)是一個或多個程序組的集合;建立會話的程序,是新會話的會話首程序(session leader);會話首程序的程序組ID是會話ID
一個會話可以有一個控制終端(controlling terminal).通常是終端裝置(在終端登入情況下)或偽終端裝置(在網路登入情況下)
建立與控制終端連線的會話首程序被稱為控制程序(controlling process)
一個會話中的幾個程序組可被分成一個前臺程序組(foreground process group)以及一個或多個後臺程序組(backgroup process group)
程序使用者ID
每個程序有三個user ID: RUID,EUID,SUID
RUID
RUID(Real User ID)在使用者登入系統時,會從口令檔案中獲取一個使用者ID,這個UID被稱為RUID
RGID(Real Group ID)在使用者登入系統時,會從口令檔案中獲取一個組ID,這個GID被稱為RGUID
EUID
EUID(Effective Group ID) 和 EGID(Effective Group ID)
EUID和EGID一般是用於使用者訪問檔案許可權控制的。
通常RUID=EUID,RGID=EGID。
SUID(Saved User ID)
儲存設定使用者ID,作為effective user ID的副本,在執行exec呼叫時後能重新恢復原來的effectiv user ID
程序時間
程序時間,也稱為CPU時間,用以度量程序使用的CPU資源,當度量一個程序的執行時間時,UNIX系統為一個程序維護了3個程序時間值:
1. 時鐘時間指程序執行的總時間;
2. 使用者CPU時間指程序執行使用者指令所用的時間;
3. 系統CPU時間指程序執行核心程式所用時間,比如執行read或write的時間
在linux中,可以使用time命令進行檢視
程序檢視命令(ps命令)
ps 命令是用於檢視系統程序資訊。
預設不帶引數的,只顯示執行在當前控制檯下的屬於當前使用者的程序。
[email protected]:~$ ps
PID TTY TIME CMD
2519 pts/9 00:00:00 bash
2531 pts/9 00:00:00 ps
引數簡介
Linux下的GNU ps命令擁有非常多的引數。簡直就是一個大雜燴。Linux下的GNU ps命令,按照引數的風格,ps命令支援三種不同風格的命令列引數:
- Unix風格的引數,前面加單破折線;例如 ps -ef
- BSD風格的引數,前面不加破折線;例如 ps axu
- GNU風格的長引數,前面加雙破折線; 例如 ps –forest
三種風格的引數,有一些相似的,但也有些看似相同卻結果不同的。例如ps aux與ps -aux 的含義是不同的。
ps aux 表示 列印基於使用者的格式顯示的所有程序
ps -aux 表示使用者x的所有程序,如使用者x不存在,則給出警告,然後列印內容和ps aux相同
常用引數
unix風格 | GNU風格 | BSD風格 | 含義 |
---|---|---|---|
-A | ax | 顯示所有程序 | |
-e | ax | 顯示所有程序 | |
-a | 顯示除守護程序和無終端程序外的所有程序 | ||
-d | 顯示所有程序,除會話首程序(session leaders) | ||
-N | –deselect | 顯示除滿足特殊條件的所有程序 | |
-p pidlist | –pid | pid | 顯示pid在pidlist裡的程序,pidlist表示pid陣列,多個用逗號分隔,如-p 123,124 |
-C cmdlist | 通過執行命令名稱查詢程序,顯示執行命令在cmdlist裡的程序 | ||
-G grplist | –Group | 通過程序組ID或程序組名稱查詢程序,顯示程序組ID在grplist裡的程序 | |
-g grplist | –group | 通過session或程序組ID在grplist裡的程序 | |
-s sesslist | –sid | 通過session ID查詢程序,顯示session ID在sesslist裡的程序 | |
-t ttylist | –tty | t | 通過控制終端id查詢程序 |
-U userlist | –User | U | 通過使用者ID(RUID)或名稱查詢程序 |
-u userlist | –user | 通過使用者ID(EUID)或名稱查詢程序 | |
-o format | –format | O | 僅顯示由format指定的列 |
-O format | 顯示基本列和由format指定的列 | ||
-H | 顯示程序繼承樹 | ||
–sort order | k | 將輸出按指定列進行排序 | |
–forest | 用層級結構顯示出程序和父程序之間的關係 | ||
-m | m | 顯示程序的執行緒資訊 |
程序格式化輸出
在上面引數中,-O,-o引數都可以控制程序輸出列資訊。
控制程式碼 | 列頭 | 描述 |
---|---|---|
%cpu | %CPU | CPU使用資訊 |
%mem | %MEM | 程序記憶體使用資訊 |
args | COMMAND | 帶執行引數的程序執行命令 |
cmd | CMD | 和args一樣 |
command | COMMAND | 和args一樣 |
comm | COMMAND | 程序執行命令名稱 |
bsdstart | START | 程序開始執行的時間 |
bsdtime | TIME | 程序執行時間 |
pid | PID | 程序PID |
ppid | PPID | 父程序PID |
pgid | PGID | 程序組ID |
euid | EUID | EUID |
egid | EGID | 有效使用者組ID(egid) |
gid | GID | 使用者組ID |
程序狀態
unix風格程序狀態
狀態名稱 | 含義 |
---|---|
0 | 正執行 |
R | 可以執行,等待執行 |
S | 在休眠 |
Z | 僵化,程序已結束,但父程序已不存在,沒有響應 |
T | 停止 |
BSD 風格的程序狀態
狀態名稱 | 含義 |
---|---|
< | 程序執行在高優先順序上 |
N | 程序執行在低優先順序上 |
L | 程序有頁面鎖定在記憶體中 |
s | 程序是個控制程序 |
l | 程序是多執行緒 |
+ | 程序執行在前端 |
常用用法
批量殺程序
批量殺程序的方法,先用ps命令列出程序的id及其他相關資訊,如果列出程序依舊過多,可以使用grep命令進行過濾,然後通過awk拿到pid,再通過kill命令殺掉程序。
例如:下面的命令可以殺掉所有的python程序
ps aux|grep python |grep -v grep | awk '{ print $2 }' |xargs kill -9
檢視topN程序
- 檢視topN最佔CPU的程序
使用ps的–sort命令按%CPU進行排序,再使用head命令就可以了.
例:檢視最佔CPU前10的程序
ps aux --sort -%cpu|head -n 10
- 檢視topN最佔記憶體的程序
ps -A -o pid,%mem,cmd --sort -%mem|head -n 10
- 檢視topN虛擬記憶體使用最多的程序
ps -A -o pid,vsz,cmd --sort -vsz|head -n 10
相關推薦
linux程序及程序檢視ps命令
程序 程序 程式的執行例項就是程序,系統為程序分配一個唯一的數字識別符號,就是程序ID(process ID)。 程序組 每個程序除了有一程序ID外,還屬於一個程序組,程序組是一個或者多個程序的集合。每個程序組有一個唯一的程序組ID。 一般重定
Linux程序之如何檢視程序詳情?(ps命令)
文章目錄 1. ps是什麼? 2. 不加引數執行ps命令會輸出什麼? 3. 如何顯示所有當前程序? 4. 如何根據程序的使用者進行資訊過濾呢? 5. 如何通過cpu和記憶體使用來過濾程序? 5.1 根據CPU使用率
linux 進程管理用ps命令查看進程
linux 進程 ps命令是Process Status的縮寫,用來列出系統中當前運行的那些進程,使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等。 ps 為我們提供了進程的一次性的查看,它所提供的查看結果並不是動態連續的。 像大多數linu
Linux 建立及管理壓縮檔案 命令 tar、gzip、gunzip、zip、unzip
Linux 命令 tar 管理檔案 tar命令可以為一個指定的檔案建立檔案,並且可以向檔案中加入新的檔案,利用tar命令,可以把一大堆的檔案和目錄全部打包成一個檔案,以便於網路傳輸使用。 打包是指將一大堆檔案或目錄變成一個總的檔案,而大小不變; 壓縮則是將一個大的檔案
系統程式設計函式之程序及程序通訊
1、產生一個子程序 NAME fork - create a child process SYNOPSIS #include <unistd.h> pid_t fork(void); RETURN VALUE
Linux系統下如何檢視某個命令的安裝位置
1.which + 命令 會出現這個命令的路徑,如果不是軟連結的話,那麼這就是此軟體的安裝路徑;如果是軟連線的話,那麼進入下一步 2.進入上面的路徑下,輸入:ls -al 要查照的命令 會出現它的真是安裝路徑。 下面以我本機的consul軟體為例進行演示: 第一步: 然
程序及程序控制塊
程序是程式的一個執行例項,是一個正在執行的程式。能分配處理器並由處理器執行的實體。 在一個系統上可以同時執行多個程式。併發執行,一個程序的指令和另一個程序的指令是交錯執行的。 程序的兩個基本元素是程式程式碼(可能被執行相同程式的其他程序共
一鍵卸載寶塔Linux面板及運行環境命令
回車 卸載 腳本 sudo pre col 運行 .cn bsp 1.進入ssh 輸入以下命令下載腳本 wget http://download.bt.cn/install/bt-uninstall.sh 2.執行腳本 (若是ubutnu用戶請在前面加sudo
Linux學習10_linux程序檢視連載之:PS命令及ps -ef | grep java的含義
關於ps -ef | grep java的含義: [[email protected] hadoop]# ps -ef|grep java root 99582 96423 0 19:31 pts/1 00:00:00 grep java [[
Linux ps命令:檢視系統中正在執行的程序
ps 是用來靜態地檢視系統中正在執行的程序的命令。 “ps aux"可以檢視系統中所有的程序;(使用BS作業系統格式。但是這個選項不能加入”-"。) "ps -le"可以檢視系統中所有的程序,而且還能看到程序的父程序的PID和程序優先順序;( 使用Linux標準命令格式) "ps -l"
linux檢視程序命令詳解(ps命令)
Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統中當前執行的那些程序。ps命令列出的是當前那些程序的快照,就是執行ps命令的那個時刻的那些程序,如果想要動態的顯示程序資訊,就可以使用top命令。要對程序進行監測和控制,首先必須要了解當前
Linux ps命令,檢視程序cpu和記憶體佔用率排序
linux ps命令,檢視程序cpu和記憶體佔用率排序 使用以下命令檢視: ps -aux | sort -k4,4n ps auxw --sort=rss ps auxw --sort=%cpu linux 下的ps命令 %CPU 程序的cpu佔用率 %MEM 程序的記憶
Linux下使用ps命令來檢視Oracle DB以及EBS相關的程序
Linux下可以使用ps命令來檢視Oracle相關的程序使用ps來檢視Oracle資料庫相關的服務Oracle Listener這個命令會列出Oracle Net Listener的程序[[email protected] ~]$ ps -ef | grep tnsl
Linux ps 命令用於檢視當前正在執行的程序
程序:正在運行當中的程式/正在執行的程式或命令 ps:---檢視系統當中所有正在執行的程序 檢視所有程序 ps aus #檢視系統中的所有程序,使用BSD作業系統格式 ps -le #檢視系統中所有程序,使用Linux標準命令格式 兩組選項可記任意一種 作用都是列出
Linux中用ps命令檢視程序狀態
Linux上程序有5種狀態: 1. 執行(正在執行或在執行佇列中等待) 2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到訊號) 3. 不可中斷(收到訊號不喚醒和不可執行, 程序必須等待直到有中斷髮生) 4. 僵死(程序已終止, 但程序描
Linux下使用ps命令檢視某個程序檔案的啟動位置
[root@izbp190idbje1fp4hnpk53z src]# ps aux | grep redis [root@
top、ps命令檢視程序中的執行緒方法
方法一:PS ps -a顯示所有程序pid,“-T”選項可以開啟執行緒檢視。 eg: ps -aT 顯示所有執行緒 方法二: Top top用於實時檢視各個執行緒情況,用top命令的“-H”選項,該選項會列出所有Linux執行緒。 eg1. top -H 所有執行緒 eg2.
ps命令檢視子程序
[[email protected] log]# ps -f -e -o pid,ppid,pgid,comm PID PPID PGID COMMAND 5070 5068 5070 bash 7169 5070 7169 \_ bash 7173 7169 7169 \_ bash 7179 7
理解proc目錄與linux程序、ps命令、netstat命令的關係
零、proc目錄簡介 proc目錄是虛擬檔案系統(VFS)的一種實現,儲存了程序資訊(pid目錄)和一些系統資訊。 一、系統的資訊 1、cpuinfo和meminfo兩個檔案 檢視CPU和記憶體相關資訊 2、kmsg檔案、mounts檔案、modules檔案 分別記錄核心輸
Linux伺服器的程序檢視命令詳解
Linux 伺服器正常啟動後,提供服務時會呼叫程式,佔用程序。這時候我們如何檢視系統中有哪些程序在被呼叫呢?我們可以通過以下命令來檢視。 一、ps 命令 ps 命令是最基本同時也是非常強大的程序檢視命令。使用該命令可以確定有哪些程序正在執行和它所執行的狀態、程序是否結束、程序有沒有僵死、哪些程序