Tengo Apache configurado en Ubuntu 16.04.4 LTS.
Por alguna razón, aproximadamente a la misma hora todos los domingos por la mañana, Apache deja de funcionar.
Cuando se detiene, corro systemctl status apache2
y veo:
Mar 04 06:25:24 xxxxxx apache2[11178]: * Stopping Apache httpd web server apache2
Entonces, de alguna manera, Apache fue detenido. Cuando se detiene, no hay nada /var/log/apache2/error.log
. Cuando inicio Apache nuevamente veo:
[Sun Mar 04 09:44:10.875444 2018] [core:warn] [pid 22442:tid 140355746498432] AH00098: pid file /var/run/apache2/apache2.pid overwritten -- Unclean shutdown of previous Apache run?
Parece /var/log/syslog
que Apache se recargó (también ProFTPD) y luego se detuvo en 06:25:24
:
Mar 4 06:25:11 xxxxxx systemd[1]: Reloading LSB: Apache2 web server.
Mar 4 06:25:11 xxxxxx apache2[11014]: * Reloading Apache httpd web server apache2
Mar 4 06:25:11 xxxxxx apache2[11014]: *
Mar 4 06:25:11 xxxxxx systemd[1]: Reloaded LSB: Apache2 web server.
Mar 4 06:25:18 xxxxxx systemd[1]: Stopping LSB: Starts ProFTPD daemon...
Mar 4 06:25:18 xxxxxx proftpd[11083]: * Stopping ftp server proftpd
Mar 4 06:25:18 xxxxxx proftpd[11083]: ...done.
Mar 4 06:25:18 xxxxxx systemd[1]: Stopped LSB: Starts ProFTPD daemon.
Mar 4 06:25:18 xxxxxx systemd[1]: Starting LSB: Starts ProFTPD daemon...
Mar 4 06:25:18 xxxxxx proftpd[11094]: * Starting ftp server proftpd
Mar 4 06:25:18 xxxxxx proftpd[11094]: 2018-03-04 06:25:18,666 xxxxxx proftpd[11104]: mod_dso/0.5: module 'mod_tls.c' already loaded
Mar 4 06:25:18 xxxxxx proftpd[11094]: 2018-03-04 06:25:18,667 xxxxxx proftpd[11104]: mod_dso/0.5: module 'mod_sftp.c' already loaded
Mar 4 06:25:19 xxxxxx proftpd[11094]: ...done.
Mar 4 06:25:19 xxxxxx systemd[1]: Started LSB: Starts ProFTPD daemon.
Mar 4 06:25:24 xxxxxx apache2[11178]: * Stopping Apache httpd web server apache2
Mar 4 06:25:24 xxxxxx apache2[11178]: *
¿Cómo puedo saber por qué Apache se detiene o qué proceso detiene Apache (por qué motivo) para poder evitar que vuelva a suceder?
Respuesta1
El problema fue causado por logrotate
, que detiene Apache al rotar registros.
El problema se solucionó editando /etc/logrotate.d/apache2
, cambiando reload
a graceful
.
Original:
postrotate
if /etc/init.d/apache2 status > /dev/null ; then \
/etc/init.d/apache2 reload > /dev/null; \
fi;
endscript
Editado:
postrotate
if /etc/init.d/apache2 status > /dev/null ; then \
/etc/init.d/apache2 graceful > /dev/null; \
fi;
endscript