Я запускаю приложение для создания FCGI на nginx во FreeBSD. Он глючит, и я хотел бы проанализировать файл .core сбоя. Но я понятия не имею, где это произошло. Кто-нибудь знает?
Во-первых, ваш nginx должен быть скомпилирован с параметром конфигурации --with-debug. Если вы используете порты freebsd, вам нужно добавить что-нибудь вроде
CONFIGURE_ARGS+= --with-debug
В Makefile в каталоге портов nginx.
Затем в nginx.conf
worker_rlimit_core 2048M;
working_directory /path/to/cores/;
в nginx.conf
и в /etc/sysctl.conf
kern.coredump=1
kern.corefile=/path/to/cores
(или "systctl -w kern-.coredump = 1; sysctl kern.corefile = / path / to / cores")
Также убедитесь, что /etc/login.conf имеет соответствующие разрешения для создания ядер для пользователя, от имени которого nginx работает (обычно a: coredumpsize = unlimited :, хотя вы можете захотеть ограничить это). Пользователь nginx будет работать с классом входа по умолчанию, если он явно не указан в /etc/master.passwd
Я придумал, как решить проблему самостоятельно.
Я не знаю, почему это необходимо, но мне пришлось изменить владельца двоичного файла с root на пользователя, с которым запущено мое приложение spawn-fcgi. и теперь он генерирует файл ядра.