В Ubuntu 18.04 я могу обновить шаблон с помощью:
sudo bash -c 'echo "/data/app_crash/%t.%e.core.%p" > /proc/sys/kernel/core_pattern'
Я также могу обновить /etc/sysctl.conf
и добавить строку:
kernel.core_pattern = /data/app_crash/%t.%e.core.%p
Однако, несмотря на то, что в /etc/sysctl.conf
или /etc/sysctl.d/*
нет других настроек строк kernel.core_pattern
, после перезагрузки шаблон снова устанавливается на значение по умолчанию:
$ sudo sysctl -a | grep kernel.core_pattern
kernel.core_pattern = |/usr/share/apport/apport %p %s %c %d %P
Оказалось, что apport
закончилась -запись любых изменений, которые я внес. Я удалил apport
с помощью sudo apt-get remove apport
, после чего мои изменения были использованы.
Да, inetd разветвит вашу программу, а это означает, что каждый экземпляр будет обслуживать одного клиента.
В вопросе "использовать inetd или не использовать inetd" содержится больше информации о том, когда лучше обрабатывать параллелизм в программе, а когда поручить это сделать inetd.