Si no conseguís arrancar apache y encontráis en el error_log entradas como estas:
[Fri Apr 3 19:25:05 2009] [warn] pid file /usr/local/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run? semget: No space left on device [Fri Apr 3 19:50:05 2009] [warn] pid file /usr/local/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run? semget: No space left on device [Fri Apr 3 20:00:05 2009] [warn] pid file /usr/local/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run? semget: No space left on device [Fri Apr 3 20:17:12 2009] [warn] pid file /usr/local/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run? semget: No space left on device [Fri Apr 3 20:17:34 2009] [warn] pid file /usr/local/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run? semget: No space left on device
El problema se centra en el kernel del sistema, significa que no queda espacio en el array de semáforos de Apache. Podéis ver el llenado ejecutando el siguiente comando:
# ipcs -s ------ Matrices semáforo ------- key semid propietario perms nsems 0x00000000 3538944 nobody 600 1 0x00000000 3571713 nobody 600 1 0x00000000 3604482 nobody 600 1 0x00000000 3637251 nobody 600 1 0x00000000 3670020 nobody 600 1 0x00000000 3702789 nobody 600 1 0x00000000 3735558 nobody 600 1 0x00000000 3768327 nobody 600 1 0x00000000 3801096 nobody 600 1 0x00000000 3833865 nobody 600 1 0x00000000 7340143 nobody 600 1 0x00000000 7372912 nobody 600 1 0x00000000 7405681 nobody 600 1 0x00000000 7438450 nobody 600 1 0x00000000 7471219 nobody 600 1 0x00000000 7503988 nobody 600 1 0x00000000 7536757 nobody 600 1 0x00000000 7569526 nobody 600 1 0x00000000 7602295 nobody 600 1 0x00000000 7635064 nobody 600 1 0x00000000 7667833 nobody 600 1 0x00000000 7700602 nobody 600 1 0x00000000 7733371 nobody 600 1 0x00000000 7766140 nobody 600 1 0x00000000 7798909 nobody 600 1 0x00000000 7831678 nobody 600 1 0x00000000 7864447 nobody 600 1
Para no tener que reiniciar, la solución es vaciar este array, podéis hacerlo de este modo:
ipcs -s | awk '{print "ipcrm -s " $2}' | bash
Ahora ya podemos reiniciar apache sin problemas. Quizás ahora toca revisar si alguna aplicación está provocando este llenado.