Crear disparador en el diario del sistema

Crear disparador en el diario del sistema

Hay un guión (encontrado aquí), destinado a monitorear un archivo de registro: si la palabra clave se activa, ejecute un comando:

journalctl -f | \
while read line ; do
    echo "$line" | grep "apcu"
    if [ $? = 0 ]
    then
           systemctl restart php7.2-fpm.service
    fi
done 

Creé y habilité un servicio systemd con estas líneas:

[Service]
ExecStart=/home/alex/journal-trigger.sh
StandardOutput=file:/home/alex/journal-trigger.log
StandardError=file:/home/alex/journal-trigger.error.log

Esta es una medida temporal, que reinicia el servicio php cuando falla el módulo apcu.so. Sin embargo, me enfrenté a un inconveniente (cuando un comando comprende 'apcu'):

sudo php cachetool.phar apcu:cache:info --fcgi

In FastCGI.php line 133:          
  FastCGI error: Stream got blocked, or terminated. (/var/run/php/php7.2-fpm.sock)

In Socket.php line 525:
  Stream got blocked, or terminated.

¿Cómo puedo arreglarlo?

Respuesta1

Ok, solucioné este problema, grep kernel\:\ traps\:.*apcu\.so
pero la verdadera solución estaba en el nivel de la aplicación: apcu_clear_cache()se dejó sin querer en mi código PHP en el servidor de producción...

información relacionada