C 如何找到哪个进程拥有命名的posix信号量锁?

C 如何找到哪个进程拥有命名的posix信号量锁?,c,linux,posix,semaphore,C,Linux,Posix,Semaphore,我使用命名信号量来同步系统中的多个进程。其中一个进程获取了锁并在不释放锁的情况下退出。现在没有一个进程能够获取信号量锁 /dev/shm/目录中存在的命名信号量文件(即 /dev/shm/sem.XXXX 我试图通过在代码中添加调试日志来找到罪魁祸首进程。有没有其他方法可以用来查找与命名信号量关联的进程id 您可以使用命令lsof/dev/shm/sem.XXXX(lsof=打开的文件列表)查找哪个进程拥有该文件定影器也是您试图实现的目标的等价物。您可以通过system()call或fork()

我使用命名信号量来同步系统中的多个进程。其中一个进程获取了锁并在不释放锁的情况下退出。现在没有一个进程能够获取信号量锁

/dev/shm/目录中存在的命名信号量文件(即 /dev/shm/sem.XXXX


我试图通过在代码中添加调试日志来找到罪魁祸首进程。有没有其他方法可以用来查找与命名信号量关联的进程id

您可以使用命令
lsof/dev/shm/sem.XXXX
lsof
=打开的文件列表)查找哪个进程拥有该文件<代码>定影器也是您试图实现的目标的等价物。您可以通过
system()
call或
fork()
/
exec()
从c程序中调用这些命令。然后,您必须分析命令的输出以采取适当的措施


有关可移植性问题的更多详细信息,请查看您可以使用命令
lsof/dev/shm/sem.XXXX
lsof
=打开的文件列表)查找哪个进程有该文件<代码>定影器也是您试图实现的目标的等价物。您可以通过
system()
call或
fork()
/
exec()
从c程序中调用这些命令。然后,您必须分析命令的输出以采取适当的措施


有关可移植性问题的更多详细信息,请查看

嗨,艾伦,我无法确定哪个进程持有锁。但是lsof命令显示了使用信号量的所有进程。您的输入对我帮助很大。我们可以使用“stat”命令查找上次访问/修改时间。你好,艾伦,我无法确定哪个进程持有锁。但是lsof命令显示了使用信号量的所有进程。您的输入帮助了我很多。我们可以使用“stat”命令查找上次访问/修改的时间。