1

我的应用程序前端和后端分别在 java 和 c 上。该接口是通过 C 端的侦听器进程。如果c端出现错误,则对应的为用户服务的监听进程需要down掉。

但在其中一种情况下,听众并没有失望。我已经绞尽脑汁,但我似乎无法破解它。

当我捆绑监听器服务时,这就是我注意到的。

15269900:       57278597: 0.0002:        _getpid()              = 15269900
15269900:       57278597: 0.0009:        _esend(11, 0x090000000B3B6F72, 1, 1, 0x0000000000000000) = 1
15269900:       57278597: kwrite(11, "\0\v\0\0\f\0\0\001\002", 11) = 11
15269900:       57278597: kread(11, "\0\v\0\0\f\0\0\001\001\0".., 8208) = 22
15269900:       57278597: 1.0974:        kread(11, "\0\v\0\0\f\0\0\001\002\0".., 8208) (sleeping...)
15269900:       57278597: 4.5260:        kread(11, "\0\v\0\0\f\0\0\001\002\0".., 8208) (sleeping...)

它就在这里等着。

此 pid 上的 procstack 显示如下

0x0000000000000000  ????????() + ??
procstack: write(/proc/15269900/ctl): The requested resource is busy.

我已经完成了我的研究,但我仍然无法弄清楚这一点。有人可以帮我为什么这个过程在这里挂起吗?

4

0 回答 0