0

所以,我得到了 ipcs -qa 的输出,我得到的输出是这样的:

T  ID   KEY     MODE        OWNER GROUP CREATOR CGROUP CBYTES QNUM QBYTES LSPID LRPID  STIME    RTIME   CTIME
q 1111  0X1111 --rw-rw----  oname gname oname   gname  1262   1    65000  222222  0   07:11:01 no-entry 07:06:00
q 2222  0x2222 --rw-rw----  oname gname oname   gname  0      0    65000   0      0   no-entry no-entry 08:40:54

数据仅供参考,但观察到队列中有1条消息,可能是由LSPID下的进程ID创建的,但LRPID下的进程ID为0。由于没有进程ID从队列中收到消息所以 RTIME 值是禁止进入的。

我想了解在什么条件下创建队列但没有进程接收消息。

另外在命令的第二个输出下,QNUM的个数也是0,表示队列中没有消息,但是创建了一个队列。在什么情况下会创建队列但没有进程能够在队列中发送消息。队列创建和访问都发生在作为队列所有者的同一用户身上,因此可能不存在权限问题。

我了解此输出特定于我的应用程序本身,但我希望了解是否存在任何通用标准,例如超时或其他可能导致这种情况的情况。

我正在使用 C 语言 ipc 库。

谢谢你的帮助。

4

1 回答 1

0

好的。所以看来这个问题主要是因为超时问题。代码没有优雅地处理服务器上的超时和负载。

于 2021-05-05T17:57:38.187 回答