Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?
参考答案:
在 Linux 中,进程可以有多种状态。这些状态在 ps
命令的输出中可以通过特定的符号来表示。下面是一些常见的进程状态及其对应的符号:
-
R (Running or Runnable)
- 表示进程正在运行或在运行队列中等待运行。
- 这是一个活动状态,进程要么正在使用 CPU,要么在等待 CPU。
-
S (Interruptible Sleep)
- 表示进程在等待某个条件成立或接收到信号。
- 这是一个非活动状态,进程被阻塞(即暂停执行),直到某个事件或信号发生。
-
D (Disk Sleep)
- 表示进程在等待 I/O 操作完成(通常是磁盘 I/O)。
- 在这个状态下,进程不可中断,直到 I/O 操作完成。
-
T (Stopped or Traced)
- 表示进程已被停止(例如,通过
SIGSTOP
信号)或正在被调试器跟踪。 - 进程在此状态下不占用 CPU 时间。
- 表示进程已被停止(例如,通过
-
Z (Zombie)
- 表示进程已终止,但其父进程尚未通过
wait()
或waitpid()
系统调用获取其终止状态。 - Zombie 进程不占用任何系统资源,除了进程表中的一个条目。
- 表示进程已终止,但其父进程尚未通过
-
I (Idle)
- 这个状态并不常见,但在某些上下文中可能出现,表示进程处于空闲状态。
请注意,不是所有的 ps
选项都会显示所有这些状态,并且符号可能会因 ps
的不同版本或不同选项而略有不同。通常,ps -ef
或 ps aux
会提供足够的信息来查看进程的状态。
此外,ps
命令的输出中可能还有其他字段和标志,具体取决于你使用的选项和 ps
的版本。为了获得特定版本的 ps
的完整信息和选项列表,你可以查阅其手册页(通过运行 man ps
)。