Linux信号量重复获取,linux – 如何通过/ proc获取当前正在运行信号量的procces?...

我想知道如何通过/ proc获取当前运行信号量的进程?我想这可能是SysVIPC子目录.但我不知道如何使用这个命令.

Ubuntu 12.10

解决方法:

我处理信号量和共享内存的唯一经验是使用命令ipcs.有关详细信息,请查看ipcs man page.

此命令显示哪些进程具有信号量:

$ipcs -s

------ Semaphore Arrays --------

key semid owner perms nsems

0x4d114854 65536 saml 600 8

使用已知的semid,我们可以查询有关具有信号量的PID的附加信息(注意有8个 – nsems列):

$ipcs -s -i 65536

Semaphore Array semid=65536

uid=500 gid=501 cuid=500 cgid=501

mode=0600, access_perms=0600

nsems = 8

otime = Sun May 12 14:44:53 2013

ctime = Wed May 8 22:12:15 2013

semnum value ncount zcount pid

0 1 0 0 0

1 1 0 0 0

2 1 0 0 2265

3 1 0 0 2265

4 1 0 0 0

5 1 0 0 0

6 1 0 0 4390

7 1 0 0 4390

pid列是这些过程.您可以使用ps查找它们,也可以查看/ proc文件系统,/ proc /< pid>.

例如:

$more /proc/2265/cmdline

mono

POSIX& SystemV

建立@lgeorget留下的评论我挖掘了我的PID 2265的/ proc / 2265 / map内容并找到了以下/ dev / shm引用:

$grep shm /proc/2265/maps

7fa38e7f6000-7fa38ebdf000 rw-s 00000000 00:11 18517 /dev/shm/mono-shared-500-shared_fileshare-grinchy-Linux-x86_64-40-12-0

7fa38f0ca000-7fa38f0cb000 rw-s 00000000 00:11 18137 /dev/shm/mono.2265

7fa3967be000-7fa3967d3000 rw-s 00000000 00:11 18516 /dev/shm/mono-shared-500-shared_data-grinchy-Linux-x86_64-328-12-0

标签:linux,semaphore

来源: https://codeday.me/bug/20190809/1626467.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值