Linux 中进程状态

Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?

1、不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号。
2、暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入 TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。
“正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。

3、就绪状态:在 run_queue 队列里的状态

4、运行状态:在 run_queue 队列里的状态
5、可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生比如等待 socket 连接、等待信号量,而被挂起
6、zombie 状态僵尸:父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体task_struct也释放掉
7、退出状态
D 不可中断 Uninterruptibleusually IO
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换从内核 2.6 开始无效
X 死掉的进程

该回答引用自ChatGPT

Linux 中进程的状态有运行(R)、睡眠(S)、停止(T)、僵死(Z)、停止(T)和僵尸(Z)状态。在 ps 显示出来的信息中,分别用 R、S、T、Z 符号表示。

  • 你看下这篇博客吧, 应该有用👉 :Linux中进程管理
  • 除此之外, 这篇博客: Linux常用命令问题汇总(夯实基础)中的 16、Linux 中进程有哪几种状态?在 ps 显示出来的信息中, 分别用什么符号表示的? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 答案:

    1、不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号。

    2、暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而 进入 TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个 特殊的状态。 正被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。

    3、就绪状态:在 run_queue 队列里的状态

    4、运行状态:在 run_queue 队列里的状态

    5、可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待 socket 连接、等待信号量),而被挂起

    6、zombie 状态(僵尸):父亲没有通过 wait 系列的系统调用会顺便将子进程 的尸体(task_struct)也释放掉

    7、退出状态

    D 不可中断 Uninterruptible(usually IO)

    R 正在运行,或在队列中的进程

    S 处于休眠状态

    T 停止或被追踪

    Z 僵尸进程

    W 进入内存交换(从内核 2.6 开始无效)

    X 死掉的进程

建议收藏:

含义符号
运行中R
睡眠中S
停止T
僵死Z
内存保护W
闲置D

进程状态:

状态含义
就绪指的是进程已经被调入内存,正等待处理机资源而准备运行的状态。
执行指的是处理机正在为该进程服务的状态。
阻塞指的是进程正在等待某些事件的发生,以便继续运行的状态。
终止指的是一个进程的执行结束,准备进入完成状态的状态。
中断指的是进程正在等待外部事件,如键盘输入,磁盘读写,网络消息等