Apache: Semget: No space left on device

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.

2 comentarios en “Apache: Semget: No space left on device

  1. Muy buena tu explicacion lo unico malo es que yo tengo el windows xp?? donde ingreso esos comandos que indicas!!!.

    donde los agrego en que archivo, abro telnet.. que hacer !!!!

    Disculpa mi ignorancia, solicito ayuda mas especifica por favor!!!

    Saludos

Comments are closed.