当你运行top
并看到所有正在运行的进程时,我一直想知道每件事的真正含义.e、 g.运行过程的所有单字母状态代码(R=运行,S=睡眠等)
我在哪里能找到这个?
当你运行top
并看到所有正在运行的进程时,我一直想知道每件事的真正含义.e、 g.运行过程的所有单字母状态代码(R=运行,S=睡眠等)
我在哪里能找到这个?
man page表示州代码映射到什么,但不是它们的实际含义.从top
手册页:
'D' = uninterruptible sleep
'R' = running
'S' = sleeping
'T' = traced or stopped
'Z' = zombie
"R"是最简单的;该进程已准备好运行,并将在轮到它使用CPU时运行.
"S"和"D"是两种睡眠状态,在这两种状态下,睡眠过程都在等待发生什么.区别在于"S"可以被信号中断,而"D"不能(通常在进程等待磁盘时出现).
"T"是进程停止的状态,通常通过SIGSTOP
或SIGTSTP
.它也可以被调试器(ptrace
)停止.当您看到这种状态时,通常是因为您使用了Ctrl+Z在后台放置命令.
"Z"是进程处于死状态(它已完成执行)的状态,唯一剩下的是在内核上描述它的 struct .它正在等待其父进程检索其退出代码,而不是更多.在其父进程完成后,它将消失.