스크립트가 있습니다 (여기에서 발견), 로그 파일을 모니터링하도록 설계되었습니다. 키워드가 트리거되면 명령을 실행합니다.
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 서비스를 다시 시작하기 위한 임시 조치입니다. 그러나 단점이 있습니다(명령에 "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 코드에 실수로 남아 있었습니다...