Создать триггер в системном журнале

Создать триггер в системном журнале

Есть сценарий (найдено здесь), предназначенный для мониторинга файла журнала: если срабатывает ключевое слово, то выполняется команда:

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

Я создал и включил службу systemd с помощью следующих строк:

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

Это временная мера, которая перезапускает службу php при сбое модуля apcu.so. Однако я столкнулся с одним недостатком (когда команда содержит '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.

Как это исправить?

решение1

Хорошо, я исправил эту проблему. grep kernel\:\ traps\:.*apcu\.so
Но настоящее исправление было на уровне приложения: apcu_clear_cache()он был непреднамеренно оставлен в моем PHP-коде на производственном сервере...

Связанный контент