Linux-进程管理类命令

Author Avatar
丁起男 06月 30,2022
  • 在其它设备中阅读本文章

Linux-进程管理类命令

ps

ps(process status)查看当前系统进程状态

基本语法

ps [选项] [| ...]

选项

选项 功能
a 列出带有终端的所有用户的进程,不显示没有终端的
x 列出当前用户的所有进程,包括没有终端的进程
u 面向用户友好的显示风格
-e 列出所有进程
-u 列出某个用户关联的所有进程
-f 显示完整格式的进程列表

一般组合:

  • aux:查看cpu和内存占用率
  • -ef:查看父子进程之间的关联关系

显示说明

  • ps aux:
    • USER:该进程是由哪个用户产生的
    • PID:进程的id号
    • %CPU:该进程占用cpu资源的百分比
    • %MEM:该进程占用物理内存的百分比
    • VSZ:该进程占用虚拟内存的大小,单位kb
    • RSS:该进程占用实际物理内存的大小,单位kb
    • TTY:该进程是在哪个终端中运行的
      • ?:没有终端
      • tty1:图形化终端
      • tty2-tty6:本地的字符界面终端
      • pts/0-255:代表虚拟终端
    • STAT:进程状态
      • R:运行
      • S:睡眠
      • T:暂停
      • Z:僵尸
      • s:包含子进程
      • l:多线程
      • +:前台显示
      • <:当前线程优先级很高
      • N:当前进程优先级很低
    • START:该进程的启动时间
    • TIME:当前进程使用cpu的运算时间
    • COMMAND:调用进程所执行的命令
  • ps -ef:
    • UID:该进程是由哪个用户产生的
    • PID:进程的id号
    • PPID:父进程的id号
    • C:cpu用于计算执行优先级的因子
      • 数值越大,表明进程是cpu密集型运算,执行优先级会降低
      • 数值越小,表面进程的I/O密集型运算,执行优先级会提高
    • STIME:该进程的启动时间
    • TTY:该进程是在哪个终端中运行的
    • TIME:当前进程使用cpu的运算时间
    • CMD:调用当前进程的命令

kill

终止进程

基本语法

通过进程号杀死进程

kill [选项] 进程号

通过进程名称杀死进程(支持通配符)

killall 进程名称

选项

选项 功能
-9 强迫进程立即终止
-l 查看所有信号值

pstree

查看进程树

基本语法

pstree [选项]

选项

选项 功能
-p 显示进程的pid
-u 显示进程所属的用户

top

实时监控系统进程状态

基本语法

top [选项]

选项说明

选项 功能
-d 秒数 指定top命令每隔几秒更新,默认3秒
-i 使top不显示任何闲置或者僵死进程
-p 进程号 通过指定监控进程id,来监控某个进程的状态
-S 指定累计模式
-s 使top命令在安全模式中运行,可以去除交互命令带来的危险
-c 显示整个命令而不只是显示命令名

操作

操作 功能
P 以cpu使用率排序,默认就是此项
M 以内存的使用率排序
N 以PID排序
q 退出
u 指定查看的用户
k 杀死指定进程,需要指定进程号和信号量

显示

  • 独立部分:
    • 第一行:
      • top:当前时间
      • up:机器运行了多长时间
      • users:当前登录用户数
      • load average:系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值
    • 第二行:
      • Tasks:当前有多少进程
      • runing:正在运行的进程数,此类进程越多服务器压力越大
      • sleeping:正在休眠的进程数
      • stopped:停止的进程数
      • zombie:僵尸进程数
    • 第三行:
      • us:用户空间占cpu的百分比
      • sy:内核空间占cpu的百分比
      • ni:修改过nice值的进程消耗掉的cpu时间
      • id:空闲cpu占用率
      • wa:等待输入输出的cpu时间百分比
      • hi:硬中断占用百分比
      • si:软中断占用百分比
      • st:丢失时间
    • 第四行:
      • total:物理内存总量
      • free:空闲内存量
      • used:使用的内存量
      • buffer/cache:用作内核缓存的内存量
    • 第五行:
      • total:交换区内存总量
      • free:空闲交换区总量
      • used:使用的交换区总量
      • buffer/cache:缓冲的交换区总量
  • 列表部分:
    • PID:进程编号
    • USER:哪个用户调用的进程
    • PR:当前任务调度优先级
    • NI:用户指定的优先级
    • VIRT:虚拟内存占用大小
    • RES:实际内存占用大小
    • SHR:共享内存占用大小
    • S:进程状态
      • R:运行
      • S:睡眠
      • T:跟踪/停止
      • z:僵尸
      • D:不可中断的睡眠
    • %CPU:cpu计算时间占比
    • %MEM:内存占比
    • TIME+:占用cpu的总时间,单位1/100秒
    • COMMAND:生成进程的命令

netstat

显示网络状态和端口占用信息

基本语法

netstat [选项] [|...]

选项

选项 功能
-a 显示所有正在监听和未监听的套接字(socket)
-n 拒绝显示别名,能显示数字的全部转换成数字
-l 仅列出在监听的服务状态
-p 表示显示哪个进程在调用

常用组合:

  • -anp:查看该进程网络信息
  • -nlp:查看网络端口占用情况

显示内容

  • Active Internet connections:有源tcp连接
    • Proto:网络协议
    • Recv-Q:接受到,但还没有拷贝的字节数
    • Send-Q:已经发送,但远程主机还没有收到的字节数
    • Local Address:本地地址
    • Foreign Address:远程地址
    • State:连接状态
      • LISTEN:监听(需要-a才能看到)
      • ESTABLISHED:建立连接
    • PID/Program name:进程id,和程序的名称
  • Active UNIX domain sockets:有源unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以高一倍)
    • Proto:协议
    • RefCnt:表示连接到本套接口上的进程号
    • Type:套接口的类型
      • STREAM:流套接字
      • DGRAM:数据报套接字
      • RAW:原始套接字
    • State:连接状态
    • PID/Program name:进程id,和程序名称
    • Path:连接到套接口的其他进程使用的路径名