运行 top 我发现总任务数约为 81 (第 2 行):
top - 21:16:18 up 23 days, 1:47, 2 users, load average: 0.06, 0.03, 0.01
Tasks: 81 total, 1 running, 55 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1008824k total, 606424k used, 402400k free, 164676k buffers
Swap: 0k total, 0k used, 0k free, 310044k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ SWAP COMMAND
1 root 20 0 19692 2552 2220 S 0.0 0.3 0:04.54 0 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 0 kthreadd
3 root 20 0 0 0 0 I 0.0 0.0 0:00.00 0 kworker/0:0
...
该行Tasks: 81 total, 1 running, 55 sleeping, 0 stopped, 0 zombie
显示总共有 81 个,其中 1 个正在运行,55 个正在睡觉。其他的在哪里?
答案1
您可以执行以下操作来列出所有进程:
top -b -n1
在上文中,我们以批处理模式输出从顶部到显示的所有过程,这些过程来自 1 次迭代。
-b
用于批处理模式
-n
是在批处理模式下运行 top 的迭代次数
如果你只想要空闲进程,具体来说,你可以这样做:
top -b -n1 -i
-i
是列出空闲进程
来自手册页
-b :批处理模式操作以批处理模式启动 top,这对于将 top 的输出发送到其他程序或文件非常有用。在此模式下,top 将不接受输入并运行,直到达到您使用“-n”命令行选项设置的迭代限制或被终止。
-n :迭代次数限制为:-n 数字指定 top 在结束之前应产生的最大迭代次数或帧数。
-我 :空闲进程切换 以最后记住的“i”状态反转开始。当此切换关闭时,自上次更新以来未使用任何 CPU 的任务将不会显示。有关此切换的更多信息,请参阅主题 4c。TASK ARE 命令、SIZE。