Что касается корки, то я не знаю. nginx разрешает делать корки для
setuid()ных процессов (worker'ов). Какие ещё должны быть условия в Линуксе -
не знаю.
для этого необходимо:
1) current work directory должна быть writable для процесса. Например,
можно перехватить SIGSEGV с опцией SA_ONESHOT, вызвать chdir() и
вернуться из обработчика сигнала.
Так делает Апач, но мне подобный метод не нравится: я считаю, что
между ошибкой и созданием корки процесс работать не должен.
Я сделаю директиву cwd <path>, куда рабочие процессы будут переходить
сразу же после setuid().
2) setrlimit(RLIMIT_CORE) в соответствующее значение, например в
unlimited
Наверное, имеет смысл директивы для setrlimit(RLIMIT_CORE), равно
как, и для RLIMIT_RTSIG (limits уже умеет её ставить или ещё нет ?)
и RLIMIT_NFILE.
3) prtcl(PR_SET_DUMPABLE, 1) - для setuid() процессов в linux.