Назад | Перейти на главную страницу

Включите coredump centos 7 с помощью systemd

Я просмотрел пару статей после некоторого поиска в Google, но, похоже, ничего не работает.

Я использую Centos 7.

Позвольте мне объяснить, что я сделал до сих пор.

Я шел шаг за шагом

http://www.kibinlabs.com/re-enables-core-dumps-redhat-7/

После этого я могу сгенерировать coredump, но только если я запускаю процесс вручную, однако, когда я начинаю процесс, например

systemctl start <myprocess>

он не генерирует coredump после уничтожения с помощью SEGV

kill -11 <pid>

var / log / messages показывает, что он получил сигнал SEGV, но я не вижу coredump.

Также устанавливается шаблон ядра ядра.

cat /proc/sys/kernel/core_pattern
/var/lib/coredumps/core-%e-sig%s-user%u-group%g-pid%p-time%t


coredump.conf 

cat /etc/sysctl.d/50-coredump.conf
Storage=both

cat  /etc/sysctl.d/99-sysctl.conf
fs.suid_dumpable = 1
kernel.core_uses_pid = 1

    Storage=both
    [root@server01 coredumps]# ls -l /etc/sysctl.d/50-coredump.conf
    lrwxrwxrwx 1 root root 26 Aug  6 13:51 /etc/sysctl.d/50-coredump.conf -> /etc/systemd/coredump.conf

Я считаю, что вы пытаетесь убить демона с установленным битом SUID.

В этом случае вам нужно будет использовать fs.suid_dumpable = 2

Еще нужно убедиться, что разрешение на весь путь, по которому вы сохраняете дамп ядра, имеет правильное разрешение.

В вашем случае это означает, что пользователи должны иметь возможность выполнять на /var на /var/lib и уметь писать в /var/lib/coredumps.

Пользователи здесь на самом деле являются пользователями, которые владеют убиваемым процессом, а не пользователем, убивающим процесс.