版权声明:可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2008/08/15/apache-no-space-left-on-device/以及本声明。
今天在开发时突然apache无法启动了。表现为,输入 httpd -X 后片刻自动退出,同时在error_log中有如下内容:
[Fri Aug 15 10:54:31 2008] [emerg] (28)No space left on device: Couldn't create accept lock
df一下发现不是磁盘空间的问题。Google了一下就找到了解决方案,原来是系统的信号量(?)不够用了。用以下命令可以查看所有的信号量:
# ipcs -s
------ Semaphore Arrays --------
key semid owner perms nsems
0x00000000 19234816 nobody 600 1
0x00000000 19267585 nobody 600 1
0x00000000 19300354 nobody 600 1
0x00000000 19398659 nobody 600 1
0x00000000 19431428 nobody 600 1
0x00000000 19464197 nobody 600 1
0x00000000 19562502 nobody 600 1
然后用这行命令删除所有的信号量即可:
ipcs -s | grep nobody | perl -lane 'print `ipcrm sem $F[1]`'