php-fpm이 구성되었음에도 불구하고 코어 덤프 파일을 생성하지 않습니다.

php-fpm이 구성되었음에도 불구하고 코어 덤프 파일을 생성하지 않습니다.

저는 php-fpm 5.4로 Centos 7을 실행하고 있습니다. 내 php-fpm 오류 로그에 (신호 11) SIGSEGV 오류가 발생하여 디버깅하고 싶습니다.

나는 선생님의 조언을 따랐습니다.php5 fpm: segfault에서 코어 덤프를 어떻게 생성합니까?하지만 php-fpm은 여전히 ​​코어 덤프 생성을 시도하지도 않습니다. php-fpm 오류 로그에서:

WARNING: [pool website.com] child 26953 exited on signal 11 (SIGSEGV) after 0.931337 seconds from start

코어 덤프가 생성된 경우 읽을 수 있지만 (SEGSEGV - core dumped)읽지 않습니다.

답변1

나는 또한 이것에 문제가 있었다. centos에서는 마스터 php-fpm프로세스가 루트 권한으로 시작된 다음 제한된 권한으로 개별 풀을 시작하는 것 같습니다 ( php-fpm기본적으로 centos의 사용자).

저와 여러분 모두의 걸림돌은 프로세스가 자신의 실행 권한을 변경한 경우 /proc/sys/fs/suid_dumpable이를 허용하도록 설정하지 않는 한 코어 덤프 파일을 생성하는 것이 허용되지 않는다는 것입니다. 이 커널 수준 제어에 대한 정보 보기여기.

답변2

나는 다음을 통해 이 문제를 해결할 수 있었습니다.

  1. /etc/systemd/system.conf 파일에 추가됨:

DefaultLimitCORE=infinity

  1. kernel.core_pattern을 변경했습니다.

sysctl kernel.core_pattern='| /usr/lib/systemd/systemd-coredump %p %u %g %s %t %c %e'

  1. 시스템 구성을 다시 로드했습니다.

systemctl daemon-reload

php-fpm에 대한 추가 단계로 모니터링하려는 개별 php-fpm 풀 파일에 다음 지시문을 설정해야 합니다.

rlimit_core = 무제한

systemd-coredump 프로그램의 기본 디렉터리는 /var/lib/systemd/coredump여기에서 생성된 덤프 파일을 볼 수 있는 디렉터리입니다.

답변3

풀을 시작하기 전의 PHP-FPM 전환기 사용자입니다. 따라서 위에서 언급 한대로 fs.suid_dumpable변경 해야했습니다 .1

https://itnext.io/linux-processes-core-dumps-systemd-coredump-and-debian-cf2ddb11ef9e

sysctl -w fs.suid_dumpable=1

관련 정보