linux 命令之 ps 查看进程

ps

ps (全称:process status)用于显示当前进程的状态,与windows 的任务管理器类似。ps 命令列出的是当前那些进程的快照,就是执行 ps 命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。要对进程进行监测和控制,就必须要了解当前进程的情况,也就是需要查看当前进程。而 ps 命令就是最基本,同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等。总之大部分信息都是可以通过执行该命令查看。

进程有5种状态

进程状态 含义 对应ps命令的状态码
运行 正在运行或在运行队列中等待 R 运行 runnable (on run queue)
中断 休眠中, 受阻, 在等待某个条件的形成或接受到信号 S 中断 sleeping
不可中断 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生 D 不可中断 uninterruptible sleep (usually IO)
僵死 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放 Z 僵死 a defunct (”zombie”) process
停止 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行 T 停止 traced or stopped

ps命令支持三种语法格式

  1. Unix风格的参数,前面加单破折线
  2. BSD风格的参数,前面不加破折线
  3. GNU风格的长参数,前面加双破折线

语法

ps [options]
  • -a 显示同一终端下的所有程序

  • -A 显示所有进程

  • -u 显示用户

  • -x 显示无控制终端的进程

  • -e 显示所有用户的进程此参数的效果和指定a参数相同

  • -f 用ASCII字符显示树状结构,表达程序间的相互关系

案例

显示指定用户信息

ps -u root

显示所有进程信息,连同命令行

ps -ef

说明:

  • UID:启动这些进程的用户
  • PID:进程的进程ID
  • PPID:父进程的进程号(如果该进程是由另一个进程启动的)
  • C:进程生命周期中的CPU利用率
  • STIME:进程启动时的系统时间
  • TTY:进程启动时的终端设备
  • TIME:运行进程需要的累计CPU时间
  • CMD:启动的程序名称

ps 与 grep 常用组合用法,查找指定进程

ps -ef | grep java

列出目前所有的正在内存当中的程序

ps -aux

说明

  • USER: 启动进程的用户
  • PID: 进程的ID
  • %CPU: 占用的 CPU 使用率
  • %MEM: 占用的记忆体使用率
  • VSZ: 占用的虚拟记忆体大小
  • RSS: 占用的记忆体大小
  • TTY: 进程启动时的终端设备
  • STAT: 行程的状态
    • D: 无法中断的休眠状态 (通常 IO 的进程)
    • R: 正在执行中
    • S: 静止状态
    • T: 暂停执行
    • Z: 不存在但暂时无法消除
    • W: 没有足够的记忆体分页可分配
    • <: 高优先序的进程
    • N: 低优先序的进程
    • L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
  • START: 进程开始时间
  • TIME: 运行进程需要的累计CPU时间
  • COMMAND: 所执行的命令
posted @ 2022-02-13 13:19  BUG弄潮儿  阅读(3100)  评论(0编辑  收藏  举报