昨晚我的 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 的信号量吗?
谢谢大家,斯特凡诺