0

昨晚我的 apache 服务器因错误而崩溃:

(28)No space left on device: AH00023: Couldn't create the ldap-cache mutex

在谷歌搜索错误的位置后,我发现这与 apache 信号量管理有关。我已经杀死了任何 apache 挂起的信号量,现在可以了:

 > ipcs -s
 > ipcrm <semid>

现在...我看到在 apache 启动信号量已恢复(apache 已启动并正在运行)但一些其他信号量已由某些 php 进程创建(我认为)并具有奇怪的特权:

 > ipcs -s
key semid 所有者 perms nsems
0x00000000 0 根 600 1
0x00000000 32769 根 600 1
0x00000000 97517570 没有人 600 1
0x00000000 97550339 没有人 600 1
0x00000000 97583108 没有人 600 1
0x00000000 97615877 没有人 600 1
0x00000000 97648646 没有人 600 1
0x00000000 97746953 织女星 0 1
0x00000000 97779722 织女星 0 1
0x00000000 97878027 织女星 0 1
0x00000000 97910796 织女星 0 1
0x00000000 98009101 织女星 0 1
0x00000000 98041870 织女星 0 1
0x00000000 98140175 织女星 0 1
0x00000000 98172944 织女星 0 1
0x00000000 98271249 织女星 0 1
0x00000000 98304018 织女星 0 1
0x00000000 98402323 织女星 0 1
0x00000000 98435092 织女星 0 1
0x00000000 98533397 织女星 0 1
0x00000000 98566166 织女星 0 1
0x00000000 98664471 织女星 0 1
0x00000000 98697240 织女星 0 1
0x00000000 98795545 织女星 0 1
0x00000000 98828314 织女星 0 1
0x00000000 98926619 织女星 0 1
0x00000000 98959388 织女星 0 1
0x00000000 99057693 织女星 0 1
0x00000000 99090462 织女星 0 1
0x00000000 99188767 织女星 0 1
0x00000000 99221536 织女星 0 1
0x00000000 99319841 织女星 0 1
0x00000000 99352610 织女星 0 1
0x00000000 99450915 织女星 0 1
0x00000000 99483684 织女星 0 1
0x00000000 99581989 织女星 0 1
0x00000000 99614758 织女星 0 1
0x00000000 99713063 织女星 0 1
0x00000000 99745832 织女星 0 1
0x00000000 99844137 织女星 0 1
0x00000000 99876906 织女星 0 1
0x00000000 99975211 织女星 0 1
0x00000000 100007980 织女星 0 1
0x00000000 100106285 织女星 0 1
0x00000000 100139054 织女星 0 1
0x00000000 100237359 织女星 0 1
0x00000000 100270128 织女星 0 1
0x00000000 100368433 织女星 0 1
0x00000000 100401202 织女星 0 1
0x00000000 100499507 织女星 0 1
0x00000000 100532276 织女星 0 1
0x00000000 100630581 织女星 0 1
0x00000000 100663350 织女星 0 1

但是当我尝试了解有关某个信号量 ID 的更多信息时,我收到了这个错误

> ipcs -m -i 100663350
ipcs: shmctl failed: Invalid argument

问题是:我如何知道哪个进程正在创建信号量而不删除它们?我可以在不影响系统可靠性的情况下杀死所有 perms = 0 的信号量吗?

谢谢大家,斯特凡诺

4

1 回答 1

1

我想你要找的是

ipcs -s -i 100663350

-m标志用于描述“共享内存段”。该-s标志用于“信号量数组”。由于您最初的电话是ipcs -s,因此第二列列出了“半”,这是您可以传递给的值ipcs -s -i <semid>

于 2014-09-02T14:52:45.660 回答