Semáforos y Apache
Autor: gacuj | Archivado en: General, Linux el día 16/May/2005
En alguna ocasión me he encontrado con el siguiente mensaje tras reinicar apache y cuando consulto el estado:
Nada más verlo dices: “ya está, borro el pid y a correr”. Pues hay ocasiones en las que no. Borraba el pid, reiniciaba y nada. Borrara el pid, el fichero de bloqueo, reiniciaba y nada.
He encontrado una solución:
se trata de que apache no ha liberado recursos del sistema y debemos hacerlo nosotros. En concreto se trata de semáforos. Linux tiene dos comandos que me ayudan a hacer esto (ipcs e ipcrm).
De esta forma ejecutamos:
para ver los id de los recursos (semáforos) que utiliza apache.
que elimina el recurso con id obtenido en el punto anterior. Si hay varios pues nos montamos la sentencia correspondiente.
Tras esto reiniciamos apache y todo vuelve a funcionar
Más info: man de ipcs e ipcrm












Pues mira, alguna vez me había pasado y no sabía por dónde venía el tema. Me lo apunto :)
Por si a alguien le sirve, he estado cacharreando para cerrar automáticamente todos los semáforos de Apache y me ha salido esta línea de comando, que puede venir bien si hay que ponerlo en algún script:
for a in `ipcs -s | grep apache | cut -f2 -d” “`; do ipcrm sem $a; done
mu bueno Ganso !!! Alguien se anima con awk?
awk? es mi favorito!
for i in $(ipcs -s | grep apache | awk ‘{print $2}’);
do
ipcrm sem $i;
done
yo escribiría menos:
ipcs -s | grep apache | awk ‘{print $2}’ | xargs ipcrm sem
Gracias por la propuesta