跳到主要内容

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

参考答案:

在 Linux 中,进程可以有多种状态。这些状态在 ps 命令的输出中可以通过特定的符号来表示。下面是一些常见的进程状态及其对应的符号:

  1. R (Running or Runnable)

    • 表示进程正在运行或在运行队列中等待运行。
    • 这是一个活动状态,进程要么正在使用 CPU,要么在等待 CPU。
  2. S (Interruptible Sleep)

    • 表示进程在等待某个条件成立或接收到信号。
    • 这是一个非活动状态,进程被阻塞(即暂停执行),直到某个事件或信号发生。
  3. D (Disk Sleep)

    • 表示进程在等待 I/O 操作完成(通常是磁盘 I/O)。
    • 在这个状态下,进程不可中断,直到 I/O 操作完成。
  4. T (Stopped or Traced)

    • 表示进程已被停止(例如,通过 SIGSTOP 信号)或正在被调试器跟踪。
    • 进程在此状态下不占用 CPU 时间。
  5. Z (Zombie)

    • 表示进程已终止,但其父进程尚未通过 wait()waitpid() 系统调用获取其终止状态。
    • Zombie 进程不占用任何系统资源,除了进程表中的一个条目。
  6. I (Idle)

    • 这个状态并不常见,但在某些上下文中可能出现,表示进程处于空闲状态。

请注意,不是所有的 ps 选项都会显示所有这些状态,并且符号可能会因 ps 的不同版本或不同选项而略有不同。通常,ps -efps aux 会提供足够的信息来查看进程的状态。

此外,ps 命令的输出中可能还有其他字段和标志,具体取决于你使用的选项和 ps 的版本。为了获得特定版本的 ps 的完整信息和选项列表,你可以查阅其手册页(通过运行 man ps)。