
Es gibt ein Skript (hier zu finden), soll eine Protokolldatei überwachen: Wenn das Schlüsselwort auslöst, führen Sie einen Befehl aus:
journalctl -f | \
while read line ; do
echo "$line" | grep "apcu"
if [ $? = 0 ]
then
systemctl restart php7.2-fpm.service
fi
done
Ich habe mit diesen Zeilen einen systemd-Dienst erstellt und aktiviert:
[Service]
ExecStart=/home/alex/journal-trigger.sh
StandardOutput=file:/home/alex/journal-trigger.log
StandardError=file:/home/alex/journal-trigger.error.log
Dies ist eine vorübergehende Maßnahme, die den PHP-Dienst neu startet, wenn das Modul apcu.so ausfällt. Ich hatte jedoch einen Nachteil (wenn ein Befehl „apcu“ enthält):
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.
Wie kann ich es reparieren?
Antwort1
Ok, ich habe dieses Problem behoben, grep kernel\:\ traps\:.*apcu\.so
aber die eigentliche Lösung lag auf Anwendungsebene: apcu_clear_cache()
wurde unbeabsichtigt in meinem PHP-Code auf dem Produktionsserver belassen ...