No se pueden detener los procesos de Apache

No se pueden detener los procesos de Apache

Actualizar:Respondiendo al comentario:

comprobar procesos de apache:

$ ps a | grep apache 3
grep: 3: No such file or directory
$ ps a | grep apache
 4514 pts/0    S+     0:00 grep --color=auto apache
$ ps a | grep apache2
 4516 pts/0    S+     0:00 grep --color=auto apache2

comprobando el registro de errores de Apache

$ tail /var/log/apache2/error.log
[Sun Aug 07 03:14:19 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 08 03:13:58 2011] [notice] Graceful restart requested, doing restart
[Mon Aug 08 03:14:00 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 08 09:03:16 2011] [notice] caught SIGTERM, shutting down
[Mon Aug 08 09:05:47 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations

Original:Detuve Apache, pero ¿por qué todavía tiene la misma cantidad de procesos en ejecución?

$ ps -A | grep apache
 1663 ?        00:00:00 apache2
 1667 ?        00:00:00 apache2
 1668 ?        00:00:00 apache2
 1669 ?        00:00:00 apache2
 1670 ?        00:00:00 apache2
 1671 ?        00:00:00 apache2
$ /etc/init.d/apache2 stop
 * Stopping web server apache2                            [ OK ] 
$ ps -A | grep apache
 1663 ?        00:00:00 apache2
 1667 ?        00:00:00 apache2
 1668 ?        00:00:00 apache2
 1669 ?        00:00:00 apache2
 1670 ?        00:00:00 apache2
 1671 ?        00:00:00 apache2

¡Gracias!

Respuesta1

Esto puede suceder ocasionalmente cuando Apache se niega a detenerse correctamente o tieneProcesos zombis. Para el primero, puede eliminar todos los procesos en ejecución con sudo killall -9 apache2; sin embargo, para este último simplemente tendrás que esperar a que desaparezcan. En caso de que Apache no quiera detenerse correctamente, lo que realmente querrá hacer es investigar qué está pasando. Sin embargo, descubrir exactamente qué está pasando puede resultar difícil.

Una interacción stracede la identificación del proceso puede dar una pista sobre qué sitios están funcionando mal y causando problemas. Desde arriba ps -Apuedes verificar el primer proceso con

strace -p 1663

Esto se adjuntará al seguimiento de la pila de procesos en ejecución y proporcionará una salida en vivo de lo que está sucediendo. En cualquier momento puedes Ctrl+C

Un recurso adicional es el registro de errores principal de Apache, que se puede encontrar en. /var/log/apache2/error.logQuerrá obtener una parte decente del registro y hojearlo para obtener más detalles. Si el problema es un problema continuo que se ejecuta

tail -f /var/log/apache2/error.log

Esto similar al stracese ejecutará en tiempo real. Para las últimas N líneas, reemplace -fcon -#un #número positivo como 50, 100, 282, etc.

Respuesta2

Asegúrese de tener los permisos adecuados para detener el servicio.

Si tu corres:

service apache2 stop

no obtendrás ningún error solo:

* Deteniendo el servidor web apache2

Intentar:

sudo service apache2 stop      

Respuesta3

Yo también tuve el mismo problema e intenté lo siguiente:

sudo apache2ctl stop

para detener el servicio, y

sudo apache2ctl start

para empezar de nuevo.

A mí me funciona, cualquier posible sugerencia es bienvenida.

Respuesta4

Se pueden solicitar procesos (enviando unseñala ellos) para detenerse. El killcomando es una forma de hacerlo. Si conoce el ID del proceso (PID) del proceso, puede solicitarlo ejecutando el siguiente comando en una terminal:

kill PID_OF_YOUR_PROCESS

El ejemplo anterior envía al PID la señal TERM predeterminada (código 15). Puede buscar los códigos de señal en elpágina man de matar( man kill).

Cuando el programa ignora la señal TERM que se les envía, aún es posible aplicar un poco más de presión enviando la señal KILL (código 9). Esta señal se utiliza como último recurso, porque es posible que el proceso no guarde ningún dato no guardado.

Al especificar a -SIGNAL_CODEcomo primer parámetro antes del ID del proceso, se enviará al proceso la señal específica. Otra característica útil del killcomando es que puede especificar más PID como en el siguiente ejemplo:

kill -9 PID1 PID2 PID3 PID4

Intente finalizar los procesos de Apache utilizando la kill -9línea. Deberían detenerse a menos que algo les impida hacerlo.

información relacionada