• Linux ? куда ещё нажать, чтоб мастер-процесс нжинкса при сегфолте писал корку? Воркеры пишут, проверяю через sudo kill -SIGSEGV
    в сислоге сообщения о сегфолте вижу (как о реальном, так и о тестовом)
    ulimit -c -> unlimited
    cat /proc/sys/kernel/core_pattern -> /tmp/core.%t.%E.%p.%s
    cat /proc/sys/fs/suid_dumpable -> 2
    убунта 14

Replies (7)

  • @fillest, как ulimit выставляется? он должен быть там где nginx запускается или в /etc/security/limits.conf

    ${nginxuser} hard core unlimited
    ${nginxuser} soft core unlimited

  • @qnikst, он в limits.conf, да, с этим всё ок
  • @fillest, интересно, попробовал на чистом хосте, где не сносил apport, который пишет в /proc/sys/kernel/core_pattern |/usr/share/apport/apport %p %s %c %P
    и появился аппортовский /var/crash/_usr_sbin_nginx.0.crash
    Но только один раз, на второй он не пишет файл (пробовал удалить).
    Причём там и ulimit -c == 0, и ниче больше не настроено.
    Хмм.
  • @fillest, о, получилось так — сунул в /proc/sys/kernel/core_pattern свой скрипт, который тупо пишет в файл, и ему прилетела корка. Возможно, в обычном случае (файл, а не скрипт) происходит какое-то отрицательное условие из "There are various circumstances in which a core dump file is not produced" manpages.ubuntu.com но не могу понять, какое, т.к. папка /tmp, и в неё все должны мочь писать, хз что ему ещё надо

    (блядь, как же надоело наступать на ровном месте на каждом шагу на какие-то ебанутые грабли)
  • @fillest, а логично
  • @fillest, echo "ulimit -c unlimited" | sudo tee /lib/lsb/init-functions.d/90-core-ulimit не сработало, мб из-за апстарта
    Вобщем, костыльну пока через пайп-скрипт, а так всё равно надо переезжать на 16 убунту для bpf и прочего, там уж системд вроде как умеет писать корки