一、前言

ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

二、ps -ef

  • 输出
    在这里插入图片描述

  • 列的意思

描述
UID用户的ID ,但输出的是用户名
PID进程的ID
PPID父进程的ID
C进程占用CPU的百分比
STIME进程启用到现在的时间
TIME该进程实际使用CUP运行的时间
TTY该进程在哪个终端上运行,若与终端无关,则显示?,若为pts/0等,则表示由网络连接主机进程
CMD命令的名称和参数

三、ps -aux

  • 输出
    在这里插入图片描述

  • 列的意思

描述
USER行程拥有者
PID进程的ID
%CPU占用的 CPU 使用率
%MEM占用的记忆体使用率
VSZ占用的虚拟记忆体大小
RSS占用的记忆体大小
TTY终端的次要装置号码 (minor device number of tty)
STAT该行程的状态
START行程开始时间
TIME执行的时间
COMMAND所执行的指令
  • STAT该行程的状态 详情
描述
D无法中断的休眠状态 (通常 IO 的进程)
R正在执行中
S静止状态
T暂停执行
Z不存在但暂时无法消除
W没有足够的记忆体分页可分配
<高优先序的行程
N低优先序的行程
L有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)

四、ps -A

  • 输出
    在这里插入图片描述

  • 列出所有的进程

五、ps -a

  • 输出
    在这里插入图片描述

  • 显示所有终端机下执行的程序,除了阶段作业领导者之外

六、ps的aux和-ef区别

1、输出风格不同

  • 两者的输出结果差别不大,但展示风格不同。aux是BSD风格,-ef是System V风格。

2、aux会截断command列,而-ef不会,当结合grep时这种区别会影响到结果

  • 原文 - PS的aux和-ef参数
  • 一直以为ps aux就可以列出所有的在运行进程,最近发现还是有些缺陷,用ps aux和-ef得到的结果居然不一样,以后尽量用-ef参数吧。
  • 情况是这样的,我用 /bmrt/blaph/blaph/bmgctl 来启动进程,由于ps aux是用BSD格式来显示结果,所以可能只会显示到 /bmrt/blaph/blap,后面的都被截掉了。
  • 这样,如果用 ps aux | grep bmgctl 来过滤该进程,可能就会误伤,获取不到bmgctl进程。
  • 而ps -ef是用全格式的System V格式,显示出来就是带全路径的进程名,会显示出bmgctl,在 ps -ef | grep bmgctl 命令下就可以完整显示该进程了。
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐