如果我插入一个卡住的进程并查看表单的输出:
[gaius@redhat64 bin]$ strace -p 18185 Process 18185 attached - interrupt to quit [ Process PID=18185 runs in 32 bit mode. ] semop(458760, 0xffa00af0, 1
我如何找出最后增加的信号量/我正在等待的PID? 我知道ipcs -p的lpid列,但只适用于共享内存段。
我的操作系统是x86_64上的RHEL 5.4(Tikanga)。 谢谢!
快速和肮脏:
#include <sys/sem.h> #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { int pid; if (argc != 2) return 1; pid = semctl(atoi(argv[1]), 0, GETPID); printf("%d\n", pid); return 0; }
(我在这里猜测)