1. 程式人生 > >ps命令(檢視程序號,狀態等)

ps命令(檢視程序號,狀態等)

轉自:http://blog.csdn.net/k122769836/article/details/8625155

常用(之後會有詳細解釋):

1、“ ps -ef ” 顯示所有程序資訊,連同命令列

2、“ ps -u ” 顯示指定使用者資訊(其實,這樣寫不完整,還應指定使用者,比如,“ ps -u wang ”,但寫完整了,顯示出來的行數的要多很多,可能不需要,而列數(專案)又會少上很多,少了不方便。這種不完整寫法雖然會有警告,但省力很多)

Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統中當前執行的那些程序。ps命令列出的是當前那些程序的快照,就是執行ps命令的那個時刻的那些程序,如果想要動態的顯示程序資訊,就可以使用top命令。

要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需要檢視當前程序,而 ps 命令就是最基本同時也是非常強大的程序檢視命令。使用該命令可以確定有哪些程序正在執行和執行的狀態、程序是否結束、程序有沒有僵死、哪些程序佔用了過多的資源等等。總之大部分資訊都是可以通過執行該命令得到的。

ps 為我們提供了程序的一次性的檢視,它所提供的檢視結果並不動態連續的;如果想對程序時間監控,應該用 top 工具。

kill 命令用於殺死程序。

一、linux上程序有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 

二、

1.命令格式:

ps[引數]

2.命令功能:

用來顯示當前程序的狀態

3.命令引數:

a  顯示所有程序

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

-A 顯示所有程序

c  顯示程序的真實名稱

-N 反向選擇

-e 等於“-A”

e  顯示環境變數

f  顯示程式間的關係

-H 顯示樹狀結構

r  顯示當前終端的程序

T  顯示當前終端的所有程式

u  指定使用者的所有程序

-au 顯示較詳細的資訊

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

-C<命令> 列出指定命令的狀況

--lines<行數> 每頁顯示的行數

--width<字元數> 每頁顯示的字元數

--help 顯示幫助資訊

--version 顯示版本顯示

4.使用例項:

例項1:顯示所有程序資訊

命令:

ps -A

輸出:

[[email protected] test6]# ps -A

  PID TTY          TIME CMD

    1 ?        00:00:00 init

    2 ?        00:00:01 migration/0

    3 ?        00:00:00 ksoftirqd/0

    4 ?        00:00:01 migration/1

    5 ?        00:00:00 ksoftirqd/1

    6 ?        00:29:57 events/0

    7 ?        00:00:00 events/1

    8 ?        00:00:00 khelper

   49 ?        00:00:00 kthread

   54 ?        00:00:00 kblockd/0

   55 ?        00:00:00 kblockd/1

   56 ?        00:00:00 kacpid

  217 ?        00:00:00 cqueue/0

  ……省略部分結果

說明:

例項2:顯示指定使用者資訊

命令:

ps -u root

輸出:

[[email protected] test6]# ps -u root

  PID TTY          TIME CMD

    1 ?        00:00:00 init

    2 ?        00:00:01 migration/0

    3 ?        00:00:00 ksoftirqd/0

    4 ?        00:00:01 migration/1

    5 ?        00:00:00 ksoftirqd/1

    6 ?        00:29:57 events/0

    7 ?        00:00:00 events/1

    8 ?        00:00:00 khelper

   49 ?        00:00:00 kthread

   54 ?        00:00:00 kblockd/0

   55 ?        00:00:00 kblockd/1

   56 ?        00:00:00 kacpid

……省略部分結果

說明:

例項3:顯示所有程序資訊,連同命令列

命令:

ps -ef

輸出:

[[email protected] test6]# ps -ef

UID        PID  PPID  C STIME TTY          TIME CMD

root         1     0  0 Nov02 ?        00:00:00 init [3]                  

root         2     1  0 Nov02 ?        00:00:01 [migration/0]

root         3     1  0 Nov02 ?        00:00:00 [ksoftirqd/0]

root         4     1  0 Nov02 ?        00:00:01 [migration/1]

root         5     1  0 Nov02 ?        00:00:00 [ksoftirqd/1]

root         6     1  0 Nov02 ?        00:29:57 [events/0]

root         7     1  0 Nov02 ?        00:00:00 [events/1]

root         8     1  0 Nov02 ?        00:00:00 [khelper]

root        49     1  0 Nov02 ?        00:00:00 [kthread]

root        54    49  0 Nov02 ?        00:00:00 [kblockd/0]

root        55    49  0 Nov02 ?        00:00:00 [kblockd/1]

root        56    49  0 Nov02 ?        00:00:00 [kacpid]

……省略部分結果

說明:

例項4: ps 與grep 常用組合用法,查詢特定程序

命令:

ps -ef|grep ssh

輸出:

[[email protected] test6]# ps -ef|grep ssh

root      2720     1  0 Nov02 ?        00:00:00 /usr/sbin/sshd

root     17394  2720  0 14:58 ?        00:00:00 sshd: [email protected]/0 

root     17465 17398  0 15:57 pts/0    00:00:00 grep ssh

說明:

例項5:將目前屬於您自己這次登入的 PID 與相關資訊列示出來

命令:

ps -l

輸出:

[[email protected] test6]# ps -l

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD

4 S     0 17398 17394  0  75   0 - 16543 wait   pts/0    00:00:00 bash

4 R     0 17469 17398  0  77   0 - 15877 -      pts/0    00:00:00 ps

說明:

各相關資訊的意義:

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

輸出:

[[email protected] test6]# ps aux

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

root         1  0.0  0.0  10368   676 ?        Ss   Nov02   0:00 init [3]                  

root         2  0.0  0.0      0     0 ?        S<   Nov02   0:01 [migration/0]

root         3  0.0  0.0      0     0 ?        SN   Nov02   0:00 [ksoftirqd/0]

root         4  0.0  0.0      0     0 ?        S<   Nov02   0:01 [migration/1]

root         5  0.0  0.0      0     0 ?        SN   Nov02   0:00 [ksoftirqd/1]

root         6  0.0  0.0      0     0 ?        S<   Nov02  29:57 [events/0]

root         7  0.0  0.0      0     0 ?        S<   Nov02   0:00 [events/1]

root         8  0.0  0.0      0     0 ?        S<   Nov02   0:00 [khelper]

root        49  0.0  0.0      0     0 ?        S<   Nov02   0:00 [kthread]

root        54  0.0  0.0      0     0 ?        S<   Nov02   0:00 [kblockd/0]

root        55  0.0  0.0      0     0 ?        S<   Nov02   0:00 [kblockd/1]

root        56  0.0  0.0      0     0 ?        S<   Nov02   0:00 [kacpid]

……省略部分結果

說明:

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

輸出:

[[email protected] test6]# ps -axjf

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ

 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND

    0     1     1     1 ?           -1 Ss       0   0:00 init [3]                  

    1     2     1     1 ?           -1 S<       0   0:01 [migration/0]

    1     3     1     1 ?           -1 SN       0   0:00 [ksoftirqd/0]

    1     4     1     1 ?           -1 S<       0   0:01 [migration/1]

    1     5     1     1 ?           -1 SN       0   0:00 [ksoftirqd/1]

    1     6     1     1 ?           -1 S<       0  29:58 [events/0]

    1     7     1     1 ?           -1 S<       0   0:00 [events/1]

    1     8     1     1 ?           -1 S<       0   0:00 [khelper]

    1    49     1     1 ?           -1 S<       0   0:00 [kthread]

   49    54     1     1 ?           -1 S<       0   0:00  \_ [kblockd/0]

   49    55     1     1 ?           -1 S<       0   0:00  \_ [kblockd/1]

   49    56     1     1 ?           -1 S<       0   0:00  \_ [kacpid]

說明:

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

命令:

輸出:

[[email protected] test6]# ps aux | egrep '(cron|syslog)'

root      2682  0.0  0.0  83384  2000 ?        Sl   Nov02   0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5

root      2735  0.0  0.0  74812  1140 ?        Ss   Nov02   0:00 crond

root     17475  0.0  0.0  61180   832 pts/0    S+   16:27   0:00 egrep (cron|syslog)

[[email protected] test6]#

說明:

其他例項:

1. 可以用 | 管道和 more 連線起來分頁檢視

命令:

ps -aux |more

2. 把所有程序顯示出來,並輸出到ps001.txt檔案

命令:

ps -aux > ps001.txt

3. 輸出指定的欄位

命令:

 ps -o pid,ppid,pgrp,session,tpgid,comm

輸出:

[[email protected] test6]# ps -o pid,ppid,pgrp,session,tpgid,comm

  PID  PPID  PGRP  SESS TPGID COMMAND

17398 17394 17398 17398 17478 bash

17478 17398 17478 17398 17478 ps

[[email protected] test6]#

相關推薦

ps命令檢視序號狀態

轉自:http://blog.csdn.net/k122769836/article/details/8625155 常用(之後會有詳細解釋): 1、“ ps -ef ” 顯示所有程序資訊,連同命令列 2、“ ps -u ” 顯示指定使用者資訊(其實,這樣寫不完整

如何最快速度ps入門迅速製作海報logo等等

之前一直有人問我關於如何做海報,如何做徽章之類的問題。起初我推薦他們去看oeasy的ps教程,但是該教程比較系統,需要的時間較長,無法滿足他們在較短的時間出作品的願望。於是我想把我自己的經歷教給他們。要想最快的產出作品,要先想著自己想要什麼效果。比如,我想做關於讀書活動的海報,我要將書本圖片放到海報

java 測試開發基礎知識類加載JVM

常量表達式 對數 前端 .cn 都是 新的 ron 技術分享 區域 寫在開頭: 面試的時候別人很可能會問你的java原理,.class load 原理, jvm機制,這些都是Java的底層知識,特整理如下: 1. 首先,編寫一個java程序,大家會用ide編寫一個例

loadrunner使用web_add_header新增HTTP資訊頭比如Content-Typetoken和使用

關於loadrunner使用web_add_header新增HTTP資訊頭(比如Content-Type,token等)和使用 1.web_add_header新增HTTP資訊頭(比如Content-Type,token等)   2.用web_custom_request

iOS開發之Swift標籤欄按鈕UITabBarItem樣式修改圖示文字尺寸顏色

import UIKit   class MainTabViewController:UITabBarController {     override func viewDidLoad()     {         super.viewDidLoad()         // 一共包含了兩個檢視     

使用form的方法例如:resetclear報錯Uncaught TypeError: Cannot read property 'tip' of undefined(…)的原因

 在瀏覽器中debug前端程式碼時,第一次按一個按鍵,沒有問題,第二次開始再按這個按鍵的時候,出現了錯誤Uncaught TypeError: Cannot read property 'tip' of undefined(…),雖然不影響功能,但是出現紅色的錯誤總是感覺

linux-top檢視各程序cpu用量

Linux檢視程序top 命令顯示了當前正執行的程序以及關於它們的重要資訊,包括它們的記憶體和 CPU 用量。 該列表既是真實時間的也是互動的。 要退出 top,按 [q] 鍵。 如: [email protected]:/work/MT7601u官方

自定義寬高比例的view輪播圖item

為解決輪播圖、listview中的item,放在不通解析度的手機上會出現拉伸變形。 比較簡單  不多說  下邊直接貼程式碼 關於下邊方法中 - getPaddingLeft() - getPaddingRight()後又加上是因為如果view中設定了padding 則會改

關於在zabbix監測腳本中使用ps命令監控進CPU使用率和內存使用率獲得數據為0的情況描述

zabbix shell linux 前提:想自己編寫zabbix監測腳本,然後通過配置模板的方式,實現對資源(cpu和內存)使用率高的進程進行監控。 過程描述:zabbix版本為2.21,被監控主機操作系統為CentOS 6.4。腳本中主要命令如下:percent=0; #通過腳本輸入參數pro

檢視程序埠序號佔用記憶體

1:在命令列提示符執行top命令2:輸入大寫M,結果按記憶體佔用降序排序;輸入大寫P,則結果按CPU佔用降序排序。(注:大寫P可以在capslock狀態輸入p,或者按Shift+p)3: ll /proc/12401  檢視程序pid對應的全路徑 4,ps  -ef|grep

Linux下指令碼實現:查詢tomcat的序號並殺死該程序;通過查詢絕對路徑 啟動tomcat並檢視日誌

查詢tomcat的程序號,並殺死該程序;通過查詢絕對路徑 ,啟動tomcat;啟動之後檢視tomcat的啟動日誌。#!/bin/bash #----自動部署-------- #加入環境變數 PATH-/bin:/sbin:/usr/bin:/usr/sbin export

Linux多線並發服務器編FTP服務器

linux分享網盤下載:https://pan.baidu.com/s/1gfNCcXt 密碼: irfk內容簡介本課程從最基礎的進程、線程概念講起逐步深入,通過理論與實踐結合的方式,使學員快說掌握linux多線程網絡編程技術,並理解技術背後的實現原理。課程詳細講解了網絡編程涉及的數據結構、網絡協議、編程接口

監控io性能、free命令ps命令、查看網絡狀態、linux下抓包

監控io性能 free命令 ps命令 查看網絡狀態 linux下抓包 監控io性能簡介iostat主要用於監控系統設備的IO負載情況,iostat首次運行時顯示自系統啟動開始的各項統計信息,之後運行iostat將顯示自上次運行該命令以後的統計信息。用戶可以通過指定統計的次數和時間來獲得所需

【題解】 P1879 玉米田Corn Fields 動態規劃狀態壓縮

bad sin 是否 editor infer nbsp 一行 als clas 題目描述 Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1

【BZOJ5299】【CQOI2018】解鎖屏幕動態規劃狀態壓縮

++ src 規劃 希望 getch cstring online androi 形狀 【BZOJ5299】【CQOI2018】解鎖屏幕(動態規劃,狀態壓縮) 題面 BZOJ 洛谷 Description 使用過Android手機的同學一定對手勢解鎖屏幕不陌生。Androi

【BZOJ1226】學校食堂動態規劃狀態壓縮

食堂 有關 轉移 mem sizeof fin 狀壓 set lin 【BZOJ1226】學校食堂(動態規劃,狀態壓縮) 題面 BZOJ 洛谷 題解 發現\(b\)很小,意味著當前這個人最壞情況下也只有後面的一小部分人在他前面拿到飯。 所以整個結果的大致順序是不會變化的。

魔板 Magic Squares廣搜狀態轉化

整數 展開 fine cstring d+ 康拓 空格 來看 reg 題目背景 在成功地發明了魔方之後,魯比克先生發明了它的二維版本,稱作魔板。這是一張有8個大小相同的格子的魔板: 1 2 3 4 8 7 6 5 題目描述 我們知道魔板的每一個方格都有一種顏色。這

每天學習一個LINUX命令:passwd 修改設置用戶密碼 pass word 口令通過語

pass 更新 vpd 技術分享 oot 修改 時間 -o RoCE passwd命令用於設置用戶的認證信息,包括用戶密碼、密碼過期時間等。系統管理者則能用它管理系統用戶的密碼。只有root可以指定用戶名稱,一般用戶只能變更自己的密碼。 語法: passwd [參數] [

Linux第二天linux常見命令有一段時間的總結

命令格式與目錄處理命令ls命令格式 : 命令[-選項][引數] 例: ls -la /etc 說明 個別命令使用不遵循此格式 當有多個選項時可以寫在一起. 簡化選項與完整選項 -a等於--all 隱藏檔案不用經常找,不用不找 命令:ls名稱:ls英文:list命令所在路徑:/bin/ls執行許可權所有使用

git 日常命令整理有點亂都是筆記

git stash pop #取回暫存的內容,自動檢測合併 git stash list #檢視"暫存區"的所有記錄 git stash clear #清空"暫存區" git stash pop #取回暫存區第一個記錄 git stash apply 0 #取回"暫存區"指定的記錄 編號