2012-01-27 68 views
0

给定一个进程ID,如何判断当前进程是否在轮询状态被阻塞?即它已经用负超时调用了poll(),并且正在等待输入准备就绪。处于投票状态?

+1

“polling state”是什么意思?轮询通常不涉及阻塞。 – Mat 2012-01-27 09:55:28

+0

@Mat编辑的问题澄清(希望) – gcbenison 2012-01-27 10:50:30

回答

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意味着运行或可运行(在运行队列上)。还有更多可能的状态。

+0

在Linux上似乎ps -o状态给你的状态信息;谢谢 – gcbenison 2012-01-27 10:54:12

+0

对不起,我没有注意到这个问题上的Linux标签,或者我会展示一个linux例子。 – joe 2012-01-28 11:00:56