【发布时间】:2012-03-23 19:34:01
【问题描述】:
我的应用程序突然停止工作。我执行了以下命令,
#ps -elf | grep aeroServ
得到以下输出,
#0 S binunun 5634 2300 0 80 0 - 7781 futex_ 15:41 pts/0 00:00:04
我能感觉到的是,应用程序没有运行,但我不明白进程现在处于哪个状态。有人可以解释一下。
【问题讨论】:
我的应用程序突然停止工作。我执行了以下命令,
#ps -elf | grep aeroServ
得到以下输出,
#0 S binunun 5634 2300 0 80 0 - 7781 futex_ 15:41 pts/0 00:00:04
我能感觉到的是,应用程序没有运行,但我不明白进程现在处于哪个状态。有人可以解释一下。
【问题讨论】:
这是ps 输出的WCHAN 列。
正如手册页所说:
nwchanWCHAN进程处于休眠状态的内核函数地址(如果需要内核函数名称,请使用 wchan)。正在运行的任务将在此列中显示破折号('-')。
因此,您的进程在内核中的 futex_* 调用上被阻塞(这些调用与互斥锁/解锁和其他同步原语有关)。 为什么它被阻止在那里,只有你可以通过检查你的代码和/或使用调试器来判断。
(有关 futex 的信息,请参阅 Futex。)
【讨论】: