システムジャーナルにトリガーを作成する

システムジャーナルにトリガーを作成する

スクリプトがあります(ここで見つかりました) は、ログ ファイルを監視することを目的としています。キーワードがトリガーされた場合、コマンドを実行します。

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

これは一時的な対策で、apcu.so モジュールが失敗したときに PHP サービスを再起動するものです。ただし、1 つの欠点がありました (コマンドに '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
。ただし、実際の修正はアプリケーション レベルで行われました。prodapcu_clear_cache()サーバーの PHP コードに意図せず残されていました...

関連情報