欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux常用操作指令1—— 查看和管理进程指令(ps、top、pstree、kill)

程序员文章站 2022-05-13 11:06:30
...

查看和管理进程

1、使用ps命令监控系统进程

ps:查看进程状态 (一个瞬间的进程状态,静态)

语法: ps [options]

参数格式:

    UNIX格式:一个"-"开头

    BSD格式:没有"-"开头

    GNU长格式:两个"-"开头

常用参数:
	a  # 显示与终端相关的所有进程,包含每个进程的完整路径

  u  # 显示进程的用户信息

  x  # 显示与终端无关的所有进程

  -a  # 显示所有终端下执行的进程

  -u  # 显示指定用户相关的进程信息

  -e  # 显示所有进程

  -f  # 额外显示UUID PPID C与STIME栏位

  f  # 显示进程树

  -H  # 显示进程树

  -I  # 以详细的格式来显示进程的状况

  -o  # 自定义输出指定字段,以逗号分隔

实例1: ps -ef
 # 常用组合,UNIX格式组合 -e -f ,额外显示UID,PPID,C与STIME栏位

[aaa@qq.com ~]# ps
   PID TTY          TIME CMD
  1525 pts/0    00:00:00 bash
  1884 pts/0    00:00:00 ps
[aaa@qq.com ~]# ps -ef   
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 10:04 ?        00:00:01 /usr/lib/systemd/systemd --switched-rroot          2      0  0 10:04 ?        00:00:00 [kthreadd]
root          3      2  0 10:04 ?        00:00:00 [ksoftirqd/0]
root          5      2  0 10:04 ?        00:00:00 [kworker/0:0H]
root          7      2  0 10:04 ?        00:00:00 [migration/0]  

# UID    进程被该UID所拥有  
# PID    进程的标识号,进程ID 
# PPID   进程的父进程的标识号  
# C     CPU使用的资源百分比  
# STIME  进程开始的时间  
# tty   该进程实在哪个终端机上面运作,若与终端无关,则显示?,tty1-tty6是本机上面的登入者进程,pts/0表示网络连接进主机的进程 
# TIME   进程所使用的总的CPU时间 
# CMD   正在执行的命令

实例2: ps aux
BSD格式参数,使用a选项和x选项显示所有进程 ,u显示进程的用户信息

[aaa@qq.com ~]# ps aux      # BSD格式参数,使用a选项和x选项显示所有进程 u显示进程的用户信息
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.2  43680  4052 ?        Ss   10:04   0:01 /usr/lib/systemd/systroot          2  0.0  0.0      0     0 ?        S    10:04   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    10:04   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   10:04   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    10:04   0:00 [migration/0]      

# USER    该进程所属用户  
# PID     该进程的进程号    
# %CPU     该进程使用掉的CPU资源百分比   
# %MEM    该进程所占用的内存百分比  
# VSZ     该进程使用掉的虚拟内存量  
# RSS     该进程占用的固定的内存量  
# TTY     该进程在那个终端机上面运行的  
# STAT  
   R 正在运行  S 正在中断睡眠中  D 不可中断睡眠  
   T  正在侦测或者是停止了  Z  已经终止,或者zombie僵死进程,    
   + 前台进程  l 多线程进程  N 低优先级进程  
   < 高优先级进程  s 进程领导者  L 已将页面锁定到内存中    
# START    该进程被触发启动的时间    
# TIME    该进程实际使用CPU运作的时间  # COMMAND  该进程的实际命令



实例3: ps - l
将目前属于您自己这次登入的 PID 与相关信息列示出来

# UNIX格式参数,使用参数-l以详细的格式显示进程的状况F S UID PID

[aaa@qq.com ~]# ps -l 
PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0   1525   1419  0  80   0 - 29122 do_wai pts/0    00:00:00 bash
0 R     0   1898   1525  0  80   0 - 38300 -      pts/0    00:00:00 ps
    
    # F 代表这个进程的flag,4代表超级用户
    # S 代表这个进程的状态(STAT),
    # PRI  优先级Priorty的缩写,执行顺讯
    # NI  NICE值
    # ADDR  指出该进程在内存那个部分,如果是个running进程,一般是“-”
    # SZ    使用掉的内存大小
    # WCHAN  进程是否在运行当中,-表示正在运行

实例4: ps -ef |grep
ps 与grep 常用组合用法,查找特定进程。
linux常用操作指令1—— 查看和管理进程指令(ps、top、pstree、kill)
实例5:ps -u root
显示指定用户进程

[aaa@qq.com ~]# 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

2、使用pstree命令监控系统进程

树状查看 (可以看出所属子进程)

  • linux中,每一个进程都是由其父进程创建的。此命令以可视化方式显示进程,通过显示进程的树状图来展示进程间关系。
主要参数

-h:高亮显示当前的进程及其祖先
-H:高亮显示指定进程及其祖先
-p:显示进程的pid
-s:显示特定进程的直系进程
-u:指定用户

实例1:pstree -p
显示当前所有进程的进程号和进程ID。
linux常用操作指令1—— 查看和管理进程指令(ps、top、pstree、kill)
实例2:pstree -a
显示所有进程的所有详细信息,遇到相同的进程名可以压缩显示。
linux常用操作指令1—— 查看和管理进程指令(ps、top、pstree、kill)

3、使用top命令监控系统进程

top:“实时查看” ,按q退出 (实时动态显示)

   -a  # 将进程按照使用内存排序

  -b  # 批处理的模式显示进程信息,输出结果可以传递给其他程序或写入到文件中,配合-n使用,一直打到-n设置的阈值

  -c  # 显示进程的整个命令路径,而不是只显示命令名称

  -d  # 指定每两次屏幕信息刷新之间的时间间隔

  -H  # 指定这个可以显示每个线程的情况,否则就是进程的总的状态

  -i  # 不显示闲置或者僵死的进程状态  

  -n  # top输出信息更新的次数,完成后将推出top命令

  -p  # 显示指定的进程信息

键入 top,显示如下信息

top - 14:27:26 up 4:22, 1 user, load average: 0.08, 0.03, 0.05
Tasks:  96 total,   2 running,  94 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1865284 total,  1460360 free,    96264 used,   308660 buff/cache
KiB Swap:  1048572 total,  1048572 free,        0 used.  1595216 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND            
  2029 root      20   0       0      0      0 R  0.3  0.0   0:00.14 kworker/0:1 

第一行:任务队列信息,同uptime命令的执行结果
   

  14:27:26    # 当前系统时间
  up  4:26    # 系统已经运行了4个半小时
  1 user     # 当前有1个用户登录系统
  load average: 0.08, 0.03, 0.05    # 1分钟,5分钟,15分钟的平均负载情况

第二行:Tasks为任务(进程)。上面的信息显示为
  共有96个进程,处于运行状态的有2个,94个在休眠,stoped状态0个,zombie状态有0个

第三行:CPU状态信息
  us  # 用户空间占用CPU的百分比
  sy  # 内核空间占用cpu的百分比
  ni  # 改变优先级的进程占用CPU的百分比
  id  # 空闲CPU百分比
  wa  # I/O等待只用CPU的百分比
  hi  # 硬中断占用CPU的百分比
  si  # 软中断
  st  # 虚拟机占用CPU的百分比

第四行:内存状态

  total  # 物理内存总量
  used   # 使用中的内存总量
  free   # 空闲内存总量
  buffers  # 缓冲的内存量

第五行:swap交换分区信息
  total  # 交换分区总量
  used   # 使用的交换区总量
  free    # 空闲交换区总量
  cached  # 缓存的内存量

第六行:空行
第七行:给出的各进程(任务)的状态监控
  PID  # 进程iD
  USER  # 进程所有者
  PR    # 进程优先级
  NI    # nice值,负值表示高优先级,正值表示低优先级
  VIRT    # 进程使用的虚拟内存总量,单位为KB
  RES    # 进程使用的,未被换出的物理内存大小,单位KB
  SHR    # 共享内存大小,单位为kb
  S      # 进程状态,D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程
  %CPU    # 上次更新到现在的CPU时间占用百分比
  %MEM    # 进程使用的物理内存百分比
  TIME+    # 进程使用的物理内存百分比
  COMMAND  # 进程名称

常用操作

1:设置top命令10秒刷新一次。

命令:top -d 102:显示程序及其完整相关信息

命令:top -c

 

例3:设定监控信息的更新次数。如设定系统任务信息更新5次后结束top命令,在命令行提示符下输入:

命令:top -n 5 

4、结束进程

kill[参数][进程号]

常用参数

-l :信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称。
-a :当处理当前进程时,不限制命令名和进程号的对应关系。
-p :指定kill 命令只打印相关进程的进程号,而不发送任何信号。
-s :指定发送信号。
-u :指定用户。

只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。 下面是常用的信号:

HUP    1    终端断线

INT     2    中断(同 Ctrl + C)

QUIT    3    退出(同 Ctrl + \)

TERM   15    终止

KILL    9    强制终止

CONT   18    继续(与STOP相反, fg/bg命令)

STOP    19    暂停(同 Ctrl + Z)

实例1:查看信号的编号
linux常用操作指令1—— 查看和管理进程指令(ps、top、pstree、kill)
实例2:杀死指定进程:这个常用

先用ps查找进程,然后用kill杀掉
命令:kill 3268

 
例:强制终止进程,向进程3268发送9信号,也就是杀死他
命令:kill –9 3268
说明:这种方法应该尽量少用。

注意:kill结束进程有些关键进程是无法杀死的。比如:

  • bash的进程。
  • init进程是无法被终止,或者说是不允。

参考

1、https://www.cnblogs.com/shijiaqi1066/p/3836017.html
2、https://www.cnblogs.com/flashfish/p/10750917.html