Я хочу отладить службу, которая не работает с SIGPIPE
. Поэтому я установил обработчик сигнала для SIGPIPE
и вызвал в нем abort()
, чтобы получить дамп ядра.
Но я ничего не получаю. Я установил sysctl -w kernel.core_pattern=/tmp/core
, чтобы получить core
в tmp
, и я установил как /etc/security/limits.conf
, так и ulimit -c unlimited
.
Итак, как я могу получить core
?
Мои файлы xinetd-service выглядят следующим образом:
service netmaumau
{
socket_type = stream
protocol = tcp
port = 8899
type = UNLISTED
flags = KEEPALIVE
disable = no
wait = yes
user = heiko
instances = 1
cps = 1 10
server = /long/path/to/nmm-server
server_args = -a
log_on_success = PID HOST EXIT
log_on_failure = HOST
}
getrlimit()
значением RLIMIT_CORE в Вашем сервисе (действительно ли оно безлимитно). - person kestasx   schedule 08.01.2015struct rlimit rl = { RLIM_INFINITY, RLIM_INFINITY }; setrlimit(RLIMIT_CORE, &rl);
было хитростью :) - person Heiko Schäfer   schedule 08.01.2015