Como usar killall para detener procesos Apache

A veces puedes encontrar tu servidor con mucha carga, causado por múltiples procesos. Primero, habrá que usar un comando tipo htop, top o ps, para tener una idea de qué está pasando en el servidor. Si no estas herramientas, te sugerimos que consultes este artículo sobre htop .

Después de tener una evaluación inicial de la carga actual del servidor, tendrás una mejor idea de cómo proceder. La mayoría de las veces, es probable que la carga se deba al tráfico y al uso regular del servidor.

En general, eso significará que la carga está causada por una gran cantidad de procesos Apache, PHP o MySQL. Después de todo, la mayoría de los servidores alojan sitios web y estos son los programas más comúnmente requeridos para ejecutar un sitio web. Teniendo esto en cuenta, durante momentos de gran carga, a menudo es bueno detener rápidamente todos los procesos de cierto tipo.

Usando killall para reducir la carga en un servidor web

En este artículo asumimos que nuestro servidor está experimentando problemas de carga debido a un alto volumen de tráfico del sitio web. Esto significa que nuestra comprobación inicial probablemente mostrará una gran cantidad de procesos de Apache y PHP en ejecución.

Recuerda que los procesos de Apache en realidad se denominan httpd .

comando htop
comando htop

En la imágen se puede ver que la mayoría de los elementos enumerados son todos ` httpd -k start` ; esto indica que son procesos del servidor web Apache. Si está familiarizado con htop , también notará que la carga actual del servidor es de 11,89 y que es solo un servidor de 2 núcleos con 1 GB de RAM . Con todo eso en mente, la carga actual se considera bastante alta.

Como ya sabemos que la mayor parte de la carga probablemente provenga de Apache, podemos usar el comando killall para solucionar el problema. Con este útil comando, podrá detener rápidamente un proceso en un servidor. Para detener los procesos de Apache ejecutaremos el siguiente comando:

killall httpd

Si intentas ejecutar el comando varias veces, probablemente verá el siguiente resultado:

httpd: no process found

En este caso, esta es una buena señal, significa que todos los procesos de Apache se han detenido y ya no se están ejecutando.

Como usamos killall para detener Apache, tendremos que asegurarnos de reiniciar el servicio Apache antes de salir del servidor. Cuando usas killall para detener un servicio fuera de control (Apahce, PHP-FPM, MariaDB, etc.), debe asegurarse de reiniciar manualmente el servicio o es posible que sus sitios no vuelvan a funcionar. En nuestro caso ejecutaremos alguno de estos métodos:

systemctl restart httpd
service apache2 restart
/etc/init.d/apache2 restart