1. 程式人生 > >linux程序及程序檢視ps命令

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命令支援三種不同風格的命令列引數:

  1. Unix風格的引數,前面加單破折線;例如 ps -ef
  2. BSD風格的引數,前面不加破折線;例如 ps axu
  3. 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程序

  1. 檢視topN最佔CPU的程序

使用ps的–sort命令按%CPU進行排序,再使用head命令就可以了.
例:檢視最佔CPU前10的程序

ps aux --sort -%cpu|head -n 10
  1. 檢視topN最佔記憶體的程序
ps -A -o pid,%mem,cmd --sort -%mem|head -n 10
  1. 檢視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 命令是最基本同時也是非常強大的程序檢視命令。使用該命令可以確定有哪些程序正在執行和它所執行的狀態、程序是否結束、程序有沒有僵死、哪些程序