专栏首页SnailTyanLinux的ps命令

Linux的ps命令

1. ps命令介绍及Linux进程状态介绍

Linux中的ps命令是Process Status的缩写,ps命令用来列出系统中当前运行的那些进程。ps命令可以列出当前进程的运行情况(状态、时间等信息)。在Linux系统中,进程有5中状态,在ps命令中分别用5个大写字母表示:

  • R (TASK_RUNNING),可执行状态。 runnable (on run queue),正在运行或在运行队列中等待的进程
  • S (TASK_INTERRUPTIBLE),可中断的睡眠状态。 sleeping,处于这个状态的进程因为等待某某事件的发生(比如等待socket连接、等待信号量),而被挂起。
  • D (TASK_UNINTERRUPTIBLE),不可中断的睡眠状态。 uninterruptible sleep (usually IO),进程处于睡眠状态,但是此刻进程是不可中断的。不可中断,指的并不是CPU不响应外部硬件的中断,而是指进程不响应异步信号。
  • T (TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态。 traced or stopped,进程处于睡眠状态,但是此刻进程是不可中断的。不可中断,指的并不是CPU不响应外部硬件的中断,而是指进程不响应异步信号。(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行)。
  • Z (TASK_DEAD - EXIT_ZOMBIE),退出状态,进程成为僵尸进程。 a defunct process,在这个退出过程中,进程占有的所有资源将被回收,除了task_struct结构(以及少数资源)。

除此之外,还有ps命令还有一些进程状态信息:

  • < 优先级高的进程
  • l 多线程状态
    • 前台进程
  • L 锁定状态
  • N 优先级低的进程

2. ps命令用法

默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户的进程。

$ ps
  PID TTY           TIME CMD
50498 ttys000    0:00.02 -bash

$ ps -f
  UID   PID  PPID   C STIME   TTY           TIME CMD
  501 50498 50497   0  9:27下午 ttys000    0:00.08 -bash

$ ps -l
  UID   PID  PPID        F CPU PRI NI       SZ    RSS WCHAN     S             ADDR TTY           TIME CMD
  501 50498 50497     4006   0  31  0  2466156   1648 -      S                   0 ttys000    0:00.08 -bash

ps命令的结果列信息表示如下:

  • UID 启动进程的用户
  • PID 进程ID
  • PPID 进程的父进程ID
  • C 进程生命周期中的CPU利用率
  • TTY 运行在哪个终端
  • TIME 进程已用CPU时间
  • CMD 进程的命令
  • F 内核分配给进程的标记
  • PRI 进程的优先级
  • NI 谦让度值用来参与决定优先级
  • SZ 如果进程被换出,所需要的空间大小
  • WCHAN 进程休眠的内核函数的地址
  • ADDR 进程的内存地址
  • S 进程的状态,(O表示正在运行,S表示休眠,R表示运行,Z代表僵化,T代表停止)

ps命令的常用参数有:

  • -e,-A 显示所有进程
  • -f 显示完整格式的输出
  • -l 显示长列表
  • -a,所有进程,加上-x参数会显示没有控制终端的进程
  • -u username,显示指定用户的进程,例如ps -u ltc
  • -aux 按照CPU或者内存用量来筛选进程,例如ps -aux --sort -pcpups -aux --sort -pmem
  • -C cmdlist,显示包含在cmdlist列表中的进程,例如ps -C test
  • -L 显示进程中的线程,例如ps -L 123,123为进程ID
  • -j 显示任务信息
  • -H 用层级显示进程,树状结构

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python调用C

    文章作者:Tyan 博客:noahsnail.com | CSDN | 简书

    Tyan
  • Linux的free命令

    free命令可以显示当前系统的内存使用状况,还可以显示内核使用的内存缓冲区的状况。free命令的参数如下:

    Tyan
  • Spring Boot实现热部署(hot swapping)

    版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.cs...

    Tyan
  • 一篇文章搞定Python多进程(全)

    前面写了三篇关于python多线程的文章,大概概况了多线程使用中的方法,文章链接如下:

    南山烟雨
  • 系统入侵后的排查思路及心得

    入侵后的总结 入侵后的总结 昨天发布Linux被入侵及其如何检查,今天这一篇主要是一些排查思路,仅供大家参考。 ? 写在前面 首先,确保系统密码符合密码复杂...

    1846122963
  • 守护进程(Daemon)

    守护进程(Daemon)一般是为了保护我们的程序/服务的正常运行,当程序被关闭、异常退出等时再次启动程序/恢复服务。 例如 http 服务的守护进程叫 htt...

    饶文津
  • python并发编程之多进程理论部分

    一 并发与并行   无论是并行还是并发,在用户看来都是'同时'运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这些任务,而一个cp...

    用户1214487
  • docker的reap问题

    在使用docker容器的时候,应该了解“PID1僵尸进程reap”问题。如果使用的时候不加注意,可能会导致出现一些意想不到的问题。

    大蟒传奇
  • [MySQL] mysql 的读写锁与并发控制

    3.举了个mbox邮箱文件的例子,说如果有多个进程同时对mbox文件写东西,那么在文件的末尾会,交叉混乱的添加,比如进程1写了几行,进程2也写了几行,互相交叉,...

    陶士涵
  • 炫技!bug 排查大曝光,涉及Linux 内核的那种

    编写代码只是程序员的工作之一,调试代码的时间甚至会超过编写代码,之前为大家讲解了很多关于系统、架构、编程等方面的内容,这篇文章就为大家全方位展示一次涉及到内核的...

    用户6543014

扫码关注云+社区

领取腾讯云代金券