linux進程管理和系統狀態常用命令簡介


1 進程管理簡介

進程(Process)是計算機中的程序關於某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操作系統結構的基礎

2 常用命令

2.1 pstree 

2.1.1 功能描述

樹形結構展示進程樹

2.1.2 命令的安裝

首先確保你安裝了psmisc.

[root@localhost ~]# yum install psmisc -y                                 

2.1.3 命令使用語法

       pstree [-a, --arguments] [-c, --compact] [-h, --highlight-all, -Hpid, --highlight-pid pid]
       [-g] --show-pgids] [-l, --long] [-n, --numeric-sort] [-N, --ns-sortns [-p, --show-pids]
       [-s, --show-parents] [-S, --ns-changes] [-u, --uid-changes] [-Z, --security-context]
       [-A, --ascii, -G, --vt100, -U, --unicode] [pid, user]
       pstree -V, --version

2.1.4 主要參數簡介

選項:
-h:高亮顯示當前的進程及其祖先 -H:高亮顯示指定進程及其祖先 -p:顯示進程的pid -s:顯示特定進程的直系進程 -u:指定用戶

2.1.5 命令的使用樣例

查看指定用戶的進程信息帶進程號

[root@localhost ~]# pstree -pu zhaojiedi1992
bash(15368)─┬─vim(15389)
            └─vim(15390)

查看當前進程的直系進程

[root@localhost ~]# pstree -ps $$                              # $$就是當前進程號。
systemd(1)───sshd(1001)───sshd(15251)───bash(15255)───pstree(15433)

2.2 ps

2.2.1 功能描述

顯示進程信息

2.2.2 命令使用語法

語法 ps [options]

這個命令比較特殊,支持了三種風格的命令使用

  • Unix選項:使用1個-
  • BSD選項:選項不使用-
  • GNU長選項:選項使用2個-

我個人是對這個命令是習慣BSD風格的,也就是習慣使用ps aux 而不是ps -ef。 這個命令經常配合grep使用。

2.2.3 主要參數和欄位信息簡介

參數:
    a:列出終端相關的,如果想列出所有進程需要配合x
    u:顯示面向用戶的格式
    x:列出終端先關的,如果列出所有進程需要配合a
    f :顯示進程樹,這個顯示效果跟pstree的效果差遠啦
    k :根據指定指標去排序
    --sort: 根據指定指標去排序,%cpu以cpu占用排序,-%cpu反序排
    o :設置顯示的列
    L :顯示支持的屬性列表
    -C :指定命令,多個命令用,分割
    -L :顯示線程
    -u : 指定有效用戶ID或名稱
    -U : 指定真正的用戶ID或名稱
    -p : 顯示指定pid進程
    --pid :顯示屬於pid的子進程
    --forest:樹型顯示
列:
    USER :用戶
    PID:進程id
    %CPU:cpu占用率
    %MEM:內存占用率
    VSZ:虛擬內存大小
    RSS:真實內存大小
    TTY:終端
    STAT:狀態
    START:開始時間
    TIME:占用cpu時間
    COMMAND:命令
    PRI:優先級
    RTPRIO:實時優先級
    PSR:當前進程對應的處理器
    NI:進程的nice值
進程狀態:
    D:不可終端睡眠
    R:運行或者在運行隊列中
    S:終端睡眠(等待一個時間完成)
    T:被作業控制信號停止
    t:被調試追蹤停止
    W:內存換頁中
    X:死亡了
    Z:蜘蛛進程
    <:高優先級的
    N:第優先級的
    L:有頁面鎖定在內存
    s:是一個會話的領導者
    l:是一個多線程
    +:是一個前台進程

2.2.4 命令的使用樣例

查看所有進程信息

[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1 193700  6836 ?        Ss   11:00   0:08 /usr/lib/systemd/systemd --switched-roo
-------------------------------------下面的行省去了--------------------------------------------------------

查看所有進程的命令,進程id,cpu占用,內存占用信息 ,並按照cpu占用排序

[root@localhost ~]# ps axo cmd,pid,%cpu,%mem k %cpu

 查看指定終端的進程

[root@localhost ~]# ps -t pts/3

有效用戶和真正用戶的區別

[zhaojiedi1992@localhost ~]$ passwd                  # 在另一個終端上執行, 別修改,就讓這個命令卡在這個界面
Changing password for user zhaojiedi1992.
Changing password for zhaojiedi1992.
(current) UNIX password: 

[root@localhost ~]# ps  -u zhaojiedi1992             # 查看有效用戶為zhaojiedi1992的進程
   PID TTY          TIME CMD
 15368 pts/3    00:00:00 bash
 15389 pts/3    00:00:00 vim
 15390 pts/3    00:00:00 vim
[root@localhost ~]# ps -U zhaojiedi1992             # 查看真正用戶為zhaojiedi1992的進程
   PID TTY          TIME CMD
 15368 pts/3    00:00:00 bash
 15389 pts/3    00:00:00 vim
 15390 pts/3    00:00:00 vim
15749 pts/3    00:00:00 passwd
我們可以看出來,用戶zhaojiedi1992使用了passwd這個命令,這個命令有suig的,運行的時候是以root運行的,所以在有效用戶上查看沒有passwd的,但是使用真正用戶可以看到的

2.3 renice,nice,chrt

2.3.1 功能描述

  • renice:調整優先級
  • nice:指定優先級
  • chrt:改變實時優先級

2.3.2 命令使用樣例

[root@localhost ~]$ renice  -n 20 15790                   # 修改指定的進程的nice值
[root@localhost ~]$ nice -n -5 ping www.baidu.com         # 在運行命令的時候就指定nice值 
 [zhaojiedi1992@localhost ~]$ chrt -p 10 $$                 # 調整實時優先級, 這個實時優先級不是想怎么該就怎么該的
 chrt: unsupported priority value for the policy: 10: see --max for valid range         
 [zhaojiedi1992@localhost ~]$ chrt --max                    # 查看可以調整的范圍
 SCHED_OTHER min/max priority    : 0/0
 SCHED_FIFO min/max priority    : 1/99
 SCHED_RR min/max priority    : 1/99
 SCHED_BATCH min/max priority    : 0/0
 SCHED_IDLE min/max priority    : 0/0
 SCHED_DEADLINE min/max priority    : 0/0

2.4 pgrep,pkill

2.4.1 功能描述

  • pgrep:查找進程
  • pkill:發送信號給進程,多數使用9信號

2.4.3 命令使用語法

pgrep [options] pattern
pkill [options] pattern

2.4.4 主要參數簡介

選項
    -u:生效者
    -U:真正發起者
    -t:指定終端
    -l:顯示進程名(pgrep可用)
    -a:顯示完整格式的進程名(pgrep可用)
    -P:顯示指定進程的子進程

2.4.5 命令使用樣例

查看/dev/pts/3終端下的完整進程名,並全部殺掉他們

[root@localhost ~]# pgrep -t pts/4 -a             # 查看pts/4終端的完整進程信息
3282 -bash
3301 su - zhaojiedi1992
3302 -bash
3325 vim a.txt
[root@localhost ~]# pkill -t pts/4               # 殺掉pts/4終端的進程

2.5 pidof

2.5.1 功能描述

查找運行進程的pid

2.5.2命令使用樣例

[root@localhost ~]# pidof bash
16078 1139

2.6 uptime

2.6.1 功能描述

獲取系統運行時間和基礎的負載信息

2.6.2命令使用樣例

[root@localhost ~]# uptime
 23:15:46 up 12:13,  2 users,  load average: 0.00, 0.01, 0.05

2.6 top

2.6.1 功能描述

動態顯示進程狀態信息,ps是一個靜態的

2.6.4 欄位信息簡介

cpu相關:
    us:用戶空間運行時間(user space)
    sy:內核空間運行時間(system )
    ni:nice過的進程運行時間(niceid:空閑進程時間(idle)
    wa:等待io時間(wait)
    hi:硬中斷(hardware interrupts)
    si:軟中斷(software interrupts)
    st:虛擬機偷走的時間(stolen time)

內存相關:
    total:總內存
    free:空閑內存
    used:使用內存
    buff/cache:buffer/cache內存
排序:
    P:按照cpu占比排序
    M:按照內存占比排序
    T:按照占據cpu時間排序

首部信息顯示:
    l:uptime信息
    t:tasks及其cpu信息
    cpu分別顯示:1(數字)
    m:內存信息顯示

命令:
    s:修改刷新間隔
    k:終止指定進程
    w:保存當前設置到~/.toprc文件,下次使用top采用這個設置
    q:退出

2.6.5 命令使用樣例

[root@localhost ~]# top
top - 23:23:47 up 12:21,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 129 total,   1 running, 128 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  4030172 total,  3323524 free,   175576 used,   531072 buff/cache
KiB Swap:  4063228 total,  4063228 free,        0 used.  3565040 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                            
   711 root      20   0  305080   6132   4768 S   0.3  0.2   1:02.42 vmtoolsd                           
 16235 root      20   0  157732   2224   1532 R   0.3  0.1   0:00.13 top                                
     1 root      20   0  193700   6836   4060 S   0.0  0.2   0:08.91 systemd                            
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.07 kthreadd                           
     3 root      20   0       0      0      0 S   0.0  0.0   0:00.02 ksoftirqd/0      

2.7 htop

2.7.1 功能描述

是一個加強版本的top命令,比較炫。

2.7.2 命令的安裝

[root@localhost ~]# yum install htop -y                          # 安裝htop,這個軟件是在epel源中的。

2.7.4 主要參數簡介

選項:
    -d:指定延遲
    -u:僅顯示指定用戶的進程
    -s:以指定字段進行排序

子命令:
    s:根據指定進程的系統調用
    l:顯示選定進程打開的文件列表
    a:將選定的進程綁定到指定的cpu上
    t:顯示進程樹

功能鍵:
    F1:幫助
    F2:設置
    F3:查找
    F4:過濾
    F5:樹顯示
    F6:排序
    F7:減小nice
    F8:增加nice
    F9:kill進程
    F10:退出,q也可以退出的

2.7.5 命令使用樣例

[root@localhost yum.repos.d]# htop

效果圖如下:

 

2.8 vmstat

2.8.1 功能描述

查看虛擬內存信息

2.8.2 命令使用語法

 vmstat [options] [delay [count]]
delay:延遲
count:顯示次數

2.8.4 主要欄位信息簡介

Procs:
    r:正在運行中或等待運行的進程數量
    b: 不可終端睡眠的進程數量
    
Memory:
    swpd: 交互內存的使用量
    free: 空閑物理內存總量
    buff: 用於buffer的內存總量
    cache: 用於cache的內存總量
    inact:非活動內存(配合-a)
    active: 活動內存(配合-a)
Swap:
    si: 從磁盤交互進內存的速率(kb/s)
    so: 從內存進入磁盤交互的速率(kb/s)
    
IO:
    bi: 讀取磁盤到系統的速率(kb/s)
    bo: 系統寫到磁盤的速率(kb/s)
    
System:
    in: 終端速率
    cs: 上下文切換速率
    
CPU:
    us:用戶空間運行時間(user space)
    sy:內核空間運行時間(system )
    id:空閑進程時間(idle)
    wa:等待io時間(wait)
    st:虛擬機偷走的時間(stolen time

2.8.5 命令使用樣例

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 3490004   2108 361132    0    0    19    15   46   34  0  0 99  1  0
 0  0      0 3489964   2108 361132    0    0     0     0  159  134  0  0 100  0  0
 0  0      0 3489964   2108 361132    0    0     0    14  163  140  0  0 100  0  0

2.9 iostat

2.9.1 功能描述

查看io的信息

2.9.2 命令的安裝

[root@localhost cd]# yum install systat

2.9.3 命令使用語法

       iostat [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] [ -j { ID | LABEL | PATH | UUID | ... } ] [ [ -T ] -g group_name
       ] [ -p [ device [,...] | ALL ] ] [ device [...] | ALL ] [ interval [ count ] ]

    interval:時間間隔
   count:顯示次數

2.9.4 主要參數和欄位信息簡介

選項:
    -h:人類易讀的格式顯示單位
    -p:顯示分區的,而不僅僅是磁盤的
    -x:擴展信息
    
cpu相關:
    %user:用戶級別的應用程序的cpu占比
    %nice:調整過nice的應用程序的cpu占比
    %system:系統級別的cpu占比
    %iowait:io等待的cpu占比
    %steal:別虛擬機偷取的cpu占比
    %idle:空閑的(沒有io請求的)cpu占比
    
設備相關:
    tps:每秒的事務量
    Blk_read/s:每秒的塊讀取速度
    Blk_wrtn/s:每秒的塊寫入速度
    Blk_read:讀取的塊大小合計
    Blk_wrtn:寫入的塊大小合計

2.9.5 命令使用樣例

[root@localhost cd]# iostat -x -d -p 1 1
Linux 3.10.0-693.el7.x86_64 (localhost)     12/16/2017     _x86_64_    (4 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.08    1.43    0.69    40.74    90.25   123.20     0.09   40.74   15.97   92.11   9.01   1.92
sda1              0.00     0.00    0.39    0.00     1.20     0.43     8.41     0.00    1.01    0.93   37.50   0.93   0.04
sda2              0.00     0.08    1.04    0.69    39.32    89.82   149.09     0.09   49.76   21.61   92.17  10.94   1.90
scd0              0.00     0.00    0.18    0.00     4.08     0.00    45.70     0.00    5.78    5.78    0.00   3.42   0.06
dm-0              0.00     0.00    0.99    0.77    38.32    89.38   145.46     0.09   51.25   22.66   88.21  10.77   1.89
dm-1              0.00     0.00    0.02    0.00     0.47     0.00    47.40     0.00    4.49    4.49    0.00   2.98   0.01
dm-2              0.00     0.00    0.02    0.00     0.24     0.43    76.64     0.00    1.58    0.84   16.25   1.08   0.00

2.10 pmap

2.10.1 功能描述

報告指定進程的內存映射

2.10.2 命令使用語法

pmap [options] pid [...]

2.10.3 命令使用樣例

[root@localhost cd]# pmap 2245
2245:   vim a.txt
0000000000400000   2112K r-x-- vim
000000000080f000      4K r---- vim
00007f7199024000   2044K ----- libutil-2.17.so
00007f7199223000      4K r---- libutil-2.17.so
----------------------------中間信息跳過不顯示了------------------------------------
 total           148884K

2.11 glance

2.11.1 功能描述

一個跨平台的系統監控工具

2.11.2 命令的安裝

[root@localhost cd]# yum install glances   -y                    # 在epel yum 源

2.11.3 命令使用語法

glances [OPTIONS]

2.11.4 主要參數簡介

選項:
    -c:作為客戶端
    -s:作為服務端
    -B指定綁定ip,默認是綁定所有ip
    -p:指定端口,默認是61209

2.11.5 命令使用樣例

在一台機器上

[root@localhost cd]# glances -s  &                 #后台運行
[1] 2290 Glances server is running on
0.0.0.0:61209

在另外一個機器上

[root@localhost ~]# glances -c 192.168.1.101

效果圖如下

2.12 dstat

2.12.1 功能描述

系統資源統計,用於代替vmstat,iostat的

2.12.2 命令的安裝

[root@localhost ~]# yum install dstat -y

2.12.3 命令使用語法

dstat [-afv] [options..] [delay [count]]

delay :延遲
count: 次數

2.12.4 主要參數簡介

選項:
    -c:顯示cpu相關信息
    -d:顯示磁盤相關信息
    -m:顯示內存相關信息
    -n:顯示網絡相關信息
    -p:顯示進程相關信息
    -r:顯示io請求相關信息
    -s:顯示swaped相關信息
    --top-cpu:顯示最占用cpu的進程
    --top-mem:顯示最占用內存的進程

2.12.5 命令使用樣例

[root@localhost ~]# dstat -v 1 2
---procs--- ------memory-usage----- ---paging-- -dsk/total- ---system-- ----total-cpu-usage----
run blk new| used  buff  cach  free|  in   out | read  writ| int   csw |usr sys idl wai hiq siq
  0   0 0.4| 278M 3468k  420M 3234M|   0     0 |  33k   69k| 142   107 |  0   0  99   0   0   0
  0   0   0| 278M 3468k  420M 3234M|   0     0 |   0     0 |  73    55 |  0   0 100   0   0   0
  0   0   0| 278M 3468k  420M 3234M|   0     0 |   0     0 |  63    57 |  0   0 100   0   0   0

2.13 iotop

2.13.1 功能描述

類似top命令的io監控

2.13.2 命令的安裝

[root@localhost ~]# yum install iotop -y

2.14 kill

2.14.1 功能描述

給指定進程發信號,大多數用於關閉進程

2.14.3 命令使用語法

       kill [-s signal|-p] [-q sigval] [-a] [--] pid...
       kill -l [signal]

2.14.4 主要參數簡介

常用信號:
    0)用於測試進程是否存在
    1)SIGHUP:無需關閉進程讓其重讀配置文件
    2)SIGINT:中止正在運行的進程,相當於ctrl+c
    3) SIGQUIT:退出,相當於ctrl+\
    9) SIGKILL:強制殺死正在運行的進程
    15)SIGTERM:終止正在運行的進程
    18)SIGCONT:繼續運行
    19)SIGSTOP:后台睡眠
    
指定信號方式:
    數字方式,如1
    信號完整名字,如SIGHUP
    信號簡寫,如HUP

2.14.5 命令使用樣例

查看進程是否存在

[root@localhost ~]# pidof vim                                  # 查看指定進程的pid
2245
[root@localhost ~]# kill -0 2245                               # 發送0信號
[root@localhost ~]# echo $?                                    # 如果結果為0代表進程存在,否則不存在
0

殺掉進程

[root@localhost ~]# kill -9 2245

殺掉所有httpd進程

[root@localhost ~]# killall httpd

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM