【问题标题】:how to determine which process is using a queue?如何确定哪个进程正在使用队列?
【发布时间】:2016-12-16 07:47:04
【问题描述】:

我有一个消息队列 ID,我需要确定哪些进程正在读取和写入该队列。 是否有可以与“ipcs”一起使用的选项?

ipcs -q|grep qid 

这并没有提供这些细节。 谢谢

【问题讨论】:

    标签: c linux unix ipc


    【解决方案1】:

    对于指定的 System V 消息队列,您只能检索调用 msgsnd() 的最后一个 PID 和调用 msgrcv() 的最后一个 PID。

    你可以使用:

    ipcs -q -p
    

    它会输出:

    ------ Message Queues PIDs --------
    msqid      owner      lspid      lrpid     
    

    地点:

    • lspid - 最后一个msgsnd()的PID
    • lrpid - 最后一个msgrcv()的PID

    【讨论】:

    • 在 lspid 和 lrpid 中都显示为 0。是因为没有进程读取或写入队列吗?
    • @arjungaur 完全正确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多