在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ ps 進程查看器
進程管理工具
objdump 二進制文件分析
scp 跨機遠(yuǎn)程拷貝
crontab 定時任務(wù)
readelf elf文件格式分析
pstack 跟蹤進程棧
系統(tǒng)管理及IPC資源管理
vmstat 監(jiān)視內(nèi)存使用情況
strace 跟蹤進程中的系統(tǒng)調(diào)用
sar 找出系統(tǒng)瓶頸的利器
ipcs 查詢進程間通信狀態(tài)
ps 進程查看器
性能優(yōu)化
wget 文件下載
top linux下的任務(wù)管理器
磁盤管理
size 查看程序內(nèi)存映像大小
free 查詢可用內(nèi)存
文件及目錄管理
iostat 監(jiān)視I/O子系統(tǒng)
性能監(jiān)控
程序構(gòu)建
學(xué)會使用命令幫助
gdb 調(diào)試?yán)?/span>
網(wǎng)絡(luò)工具
nm 目標(biāo)文件格式分析
lsof 一切皆文件
用戶管理工具
程序調(diào)試
ldd 查看程序依賴庫
文本處理

ps 進程查看器

Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統(tǒng)中當(dāng)前運行的那些進程。ps命令列出的是當(dāng)前那些進程的快照,就是執(zhí)行ps命令的那個時刻的那些進程,如果想要動態(tài)的顯示進程信息,就可以使用top命令。

要對進程進行監(jiān)測和控制,首先必須要了解當(dāng)前進程的情況,也就是需要查看當(dāng)前進程,而 ps 命令就是最基本同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態(tài)、進程是否結(jié)束、進程有沒有僵死、哪些進程占用了過多的資源等等。總之大部分信息都是可以通過執(zhí)行該命令得到的。

ps 為我們提供了進程的一次性的查看,它所提供的查看結(jié)果并不動態(tài)連續(xù)的;如果想對進程時間監(jiān)控,應(yīng)該用 :ref:top 工具。

注:kill 命令用于殺死進程。

linux上進程有5種狀態(tài):

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

ps工具標(biāo)識進程的5種狀態(tài)碼:

  • D 不可中斷 uninterruptible sleep (usually IO)
  • R 運行 runnable (on run queue)
  • S 中斷 sleeping
  • T 停止 traced or stopped
  • Z 僵死 a defunct (”zombie”) process

命令參數(shù)

  • a 顯示所有進程
  • -a 顯示同一終端下的所有程序
  • -A 顯示所有進程
  • c 顯示進程的真實名稱
  • -N 反向選擇
  • -e 等于“-A”
  • e 顯示環(huán)境變量
  • f 顯示程序間的關(guān)系
  • -H 顯示樹狀結(jié)構(gòu)
  • r 顯示當(dāng)前終端的進程
  • T 顯示當(dāng)前終端的所有程序
  • u 指定用戶的所有進程
  • -au 顯示較詳細(xì)的資訊
  • -aux 顯示所有包含其他使用者的行程
  • -C<命令> 列出指定命令的狀況
  • --lines<行數(shù)> 每頁顯示的行數(shù)
  • --width<字符數(shù)> 每頁顯示的字符數(shù)
  • --help 顯示幫助信息
  • --version 顯示版本顯示

輸出列的含義

  • F 代表這個程序的旗標(biāo) (flag), 4 代表使用者為 super user
  • S 代表這個程序的狀態(tài) (STAT),關(guān)于各 STAT 的意義將在內(nèi)文介紹
  • UID 程序被該 UID 所擁有
  • PID 進程的ID
  • PPID 則是其上級父程序的ID
  • C CPU 使用的資源百分比
  • PRI 這個是 Priority (優(yōu)先執(zhí)行序) 的縮寫,詳細(xì)后面介紹
  • NI 這個是 Nice 值,在下一小節(jié)我們會持續(xù)介紹
  • ADDR 這個是 kernel function,指出該程序在內(nèi)存的那個部分。如果是個 running的程序,一般就是 "-"
  • SZ 使用掉的內(nèi)存大小
  • WCHAN 目前這個程序是否正在運作當(dāng)中,若為 - 表示正在運作
  • TTY 登入者的終端機位置
  • TIME 使用掉的 CPU 時間。
  • CMD 所下達(dá)的指令為何

使用實例

實例1:顯示所有進程信息

[root@localhost 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
……省略部分結(jié)果

實例2:顯示指定用戶信息

[root@localhost 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
……省略部分結(jié)果

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

[root@localhost 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 組合使用,查找特定進程

[root@localhost 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: root@pts/0
root     17465 17398  0 15:57 pts/0    00:00:00 grep ssh

實例5:將與這次登入的 PID 與相關(guān)信息列示出來

[root@localhost 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

實例6:列出目前所有的正在內(nèi)存中的程序

[root@localhost 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]