linux进程学习

目录

1.进程的查看

ps:将某个时间点的进程运行情况选取下来

top:动态查看进程的变化

pstree: 进程之间的相关性


1.进程的查看

ps:将某个时间点的进程运行情况选取下来

#仅查看自己的bash的相关进程: ps -l
mali@mali:~$ ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  2472  2465  0  80   0 -  6029 wait   pts/4    00:00:00 bash
0 R  1000  3042  2472  0  80   0 -  7662 -      pts/4    00:00:00 ps
#所列出的信息说明bash的程序属于UID为1000的用户,状态为睡眠(sleep),之所以睡眠是因为它触发了ps(状态为run)

S: 代表这个进程的状态(STAT),主要的状态有:

  • R(Running):该进程正在运行中;
  • S(Sleep):该进程目前正在睡眠状态(idle),但可以被唤醒(signal)
  • D:不可被唤醒的睡眠状态,通常这个进程可能在等待I/O的情况
  • T:停止状态(stop),可能是在工作控制(后台暂停)或除错(traced)状态
  • Z(Zombie):“僵尸”状态,进程已经终止但却无法被删除至内存外。
#列出目前所有的正在内存当中的进程:
mali@mali:~$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.1  0.3 185380  3516 ?        Ss   22:22   0:01 /sbin/init splash
root         2  0.0  0.0      0     0 ?        S    22:22   0:00 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<   22:22   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S    22:22   0:00 [ksoftirqd/0]
root         7  0.0  0.0      0     0 ?        S    22:22   0:00 [rcu_sched]
root         8  0.0  0.0      0     0 ?        S    22:22   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    22:22   0:00 [migration/0]
root        10  0.0  0.0      0     0 ?        S<   22:22   0:00 [lru-add-drain]
......#中间省略
mali      2472  0.0  0.3  24116  3188 pts/4    Ss   22:26   0:00 bash
root      2485  0.6 10.0 298412 101584 ?       SNl  22:26   0:06 /usr/bin/python3 /usr/sbin/aptd
mali      2491  0.0  0.2 519112  2432 ?        Sl   22:26   0:00 /usr/lib/x86_64-linux-gnu/deja-dup/deja-dup-monitor
root      2634  0.0  0.2  94964  2080 ?        Ss   22:28   0:00 /usr/sbin/cupsd -l
root      2635  0.0  0.2 274812  2640 ?        Ssl  22:28   0:00 /usr/sbin/cups-browsed
lp        2667  0.0  0.1  81240  1396 ?        S    22:28   0:00 /usr/lib/cups/notifier/dbus dbus://
lp        2668  0.0  0.1  81240  1436 ?        S    22:28   0:00 /usr/lib/cups/notifier/dbus dbus://
lp        2669  0.0  0.1  81240  1352 ?        S    22:28   0:00 /usr/lib/cups/notifier/dbus dbus://
root      3034  0.0  0.0      0     0 ?        S    22:28   0:00 [kworker/u2:2]
root      3068  0.0  0.0      0     0 ?        S    22:35   0:00 [kworker/u2:0]
root      3160  0.0  0.0      0     0 ?        S    22:37   0:00 [kworker/0:1]
root      3471  0.0  0.0      0     0 ?        S    22:42   0:00 [kworker/u2:1]
mali      3550  0.0  0.3  39096  3364 pts/4    R+   22:43   0:00 ps aux
#显示出所有的进程
mali@mali:~$ ps -lA
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 - 46345 -      ?        00:00:01 systemd
1 S     0     2     0  0  80   0 -     0 -      ?        00:00:00 kthreadd
1 S     0     4     2  0  60 -20 -     0 -      ?        00:00:00 kworker/0:0H
1 S     0     6     2  0  80   0 -     0 -      ?        00:00:00 ksoftirqd/0
1 S     0     7     2  0  80   0 -     0 -      ?        00:00:00 rcu_sched
1 S     0     8     2  0  80   0 -     0 -      ?        00:00:00 rcu_bh
1 S     0     9     2  0 -40   - -     0 -      ?        00:00:00 migration/0
1 S     0    10     2  0  60 -20 -     0 -      ?        00:00:00 lru-add-drain
5 S     0    11     2  0 -40   - -     0 -      ?        00:00:00 watchdog/0
1 S     0    12     2  0  80   0 -     0 -      ?        00:00:00 cpuhp/0
5 S     0    13     2  0  80   0 -     0 -      ?        00:00:00 kdevtmpfs
1 S     0    14     2  0  60 -20 -     0 -      ?        00:00:00 netns
......
#列出类似进程树的程序显示:
mali@mali:~$ ps axjf
 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND
    0     2     0     0 ?           -1 S        0   0:00 [kthreadd]
    2     4     0     0 ?           -1 S<       0   0:00  \_ [kworker/0:0H]
    2     6     0     0 ?           -1 S        0   0:00  \_ [ksoftirqd/0]
    2     7     0     0 ?           -1 S        0   0:00  \_ [rcu_sched]
    2     8     0     0 ?           -1 S        0   0:00  \_ [rcu_bh]
......//中间省略
 1630  2465  1782  1782 ?           -1 Sl    1000   0:03          \_ /usr/lib/gnome-terminal/gnome-terminal-server
 2465  2472  2472  2472 pts/4     3592 Ss    1000   0:00              \_ bash
 2472  3592  3592  2472 pts/4     3592 R+    1000   0:00                  \_ ps axjf


top:动态查看进程的变化

相对于ps时选取一个时间点的进程状态,top则可以持续检测进程运行的状态。

top [-d 数字] | top [-bnp]

参数:

  • -d: 后面可以接秒数,就是整个进程界面更新的秒数。默认是5秒
  • -b: 以批次方式执行top,还有更多的参数可以使用。通常会搭配数据流重定向来将批处理的结果输出成为文件
  • -n: 与-b搭配,意义是,需要进行几次top的输出结果
  • -p: 指定某些个PID来进行查看监测。

在top执行过程中可以使用的按键命令:

  • ?: 显示在top当中可以输入的按键命令
  • P:以CPU的使用资源排序显示
  • M: 以内存的使用资源排序显示
  • N:以PID来排序
  • T: 由该进程使用的CPU时间累积(TIME+)排序
  • k:给予某个PID一个信号(signal)
  • r: 给予某个PID重新制定一个nice值
  • q:离开top

 

#每2秒钟更新一次top,查看整体信息
mali@mali:~$ top -d 2

top - 23:07:47 up 44 min,  1 user,  load average: 0.37, 0.17, 0.12
Tasks: 167 total,   1 running, 166 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.1 us,  1.1 sy,  0.6 ni, 86.3 id,  6.9 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :  1013768 total,   192000 free,   506248 used,   315520 buff/cache
KiB Swap:  1046524 total,   831808 free,   214716 used.   336620 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                             
 2058 mali      20   0 1266020 150044  34308 S 37.5 14.8   1:38.35 compiz                                                                                              
 1281 root      20   0  466836  86016  11328 S 12.5  8.5   0:28.48 Xorg                                                                                                
    1 root      20   0  185380   3516   2168 S  0.0  0.3   0:01.41 systemd                                                                                             
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                                            
    4 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                                                                        
    6 root      20   0       0      0      0 S  0.0  0.0   0:00.21 ksoftirqd/0                                                                                         
    7 root      20   0       0      0      0 S  0.0  0.0   0:00.40 rcu_sched                                                                                           
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                                                                                              
    9 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0        
#查看单一进程
mali@mali:~$ echo $$
2472
mali@mali:~$ top -p 2472

top - 23:11:29 up 48 min,  1 user,  load average: 0.34, 0.19, 0.12
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s): 19.8 us,  3.7 sy,  0.0 ni, 72.1 id,  4.4 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1013768 total,   176516 free,   515232 used,   322020 buff/cache
KiB Swap:  1046524 total,   831812 free,   214712 used.   327564 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                             
 2472 mali      20   0   24116   3512   1856 S  0.0  0.3   0:00.04 bash  

pstree: 进程之间的相关性

mali@mali:~$ pstree -p
systemd(1)─┬─ModemManager(680)─┬─{gdbus}(793)
           │                   └─{gmain}(791)
           ├─NetworkManager(658)─┬─dhclient(858)
           │                     ├─dnsmasq(871)
           │                     ├─{gdbus}(760)
           │                     └─{gmain}(758)
           ├─VBoxClient(1253)───VBoxClient(1254)
           ├─VBoxClient(1643)───VBoxClient(1644)───{SHCLIP}(1678)
           ├─VBoxClient(1653)───VBoxClient(1654)
           ├─VBoxClient(1658)───VBoxClient(1659)───{X11 events}(1671)
           ├─VBoxClient(1663)───VBoxClient(1664)─┬─{dndHGCM}(1673)
           │                                     └─{dndX11}(1674)
           ├─VBoxService(1292)─┬─{automount}(1300)
           │                   ├─{control}(1294)
           │                   ├─{cpuhotplug}(1297)
           │                   ├─{memballoon}(1298)
           │                   ├─{timesync}(1295)
           │                   ├─{vminfo}(1296)
           │                   └─{vmstats}(1299)
......

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值