给定进程ID,如何判断该进程当前是否在轮询状态中被阻止?即它已调用poll()并显示否定超时,并等待输入准备就绪。
答案 0 :(得分:1)
在类UNIX系统上,命令行实用程序“ps”提供此信息。根据操作系统的不同,ps有很多种,所以请阅读手册页。
在类似BSD的系统(mac)上:
ps -eo pid,user,cpu,state,comm
PID USER CPU STAT COMM
1 root 0 Ss /sbin/launchd
15 root 0 Ss /usr/libexec/kextd
90710 root 0 R+ ps
83804 joe 0 Ss /bin/bash
89631 joe 0 S+ ssh
其中STAT是进程状态。 S意味着可中断的睡眠。 s(小写)表示会话负责人。 '+'表示它位于前台进程组中。 R表示正在运行或可运行(在运行队列中)。还有更多可能的状态。