Немає основних скидів після останніх оновлень до systemd?


12

Коли я виконую програму, над якою працюю, вона не працює із таким повідомленням:

...
Aborted (core dumped)

Однак не створено жодного основного дампа. Основні звалища були написані раніше, і я не пам’ятаю, щоб я щось змінив, пов’язаний із цим.

Коли я біжу, ulimit -aя повертаюся,

$ ulimit -a
core file size          (blocks, -c) unlimited
...

Інші пункти,

  • Я переконався, що мій користувач може створювати файли в поточному каталозі.
  • Я читав о /proc/sys/fs/suid_dumpable. Наразі він встановлений на 0 на моїй машині. Я намагався змінити його на 1 або 2, але різниці немає.
  • Я також намагався виконати програму як root, але це теж не змінило значення.

На жаль, я не пам’ятаю, коли я міг створити останній успішний ядро-дамп.

Відповіді:


8

Від документів coredump.conf,

Щоб вимкнути файл конфігурації, наданий постачальником, рекомендованим способом є розміщення симпосилання до /dev/nullкаталогу конфігурації в /etc/, з тим самим іменем файлу, що і файл конфігурації постачальника.

sudo ln -s /dev/null /etc/sysctl.d/coredump.conf
sudo systemd-sysctl 

З моменту систематизації речей керують інакше.


Вау, ви праві! Не так давно я перейшов на systemd. sudo systemd-coredumpctlпоказує всі відсутні відвали ядра. Ваше рішення спрацювало, але лише після перезавантаження системи.
Philipp Claßen

1
systemd«S systemd-sysctl.serviceпросто біжить sysctlна належному точки завантаження, і ручки Перезапуск його вручну на зміни. І не слід створювати / перезаписувати конфігураційні файли, не досліджуючи, для чого вони призначені та їх вміст.
vonbrand

1
Здається, файл перейменований на 50-coredump.conf, щоб застосувати налаштування в поточному завантаженні, мені довелося запустити змінити налаштування sysctl вручну, див. Stackoverflow.com/q/2065912/427545 .
Лекенштейн

2
Для відновлення за замовчуванням не встановлюйте порожню рядок, використовуйте це замість цього:sysctl -w kernel.core_pattern="core"
Lekensteyn

2

Ви можете скористатися coredumpctlкомандою для отримання основного дампа або запуску gdb на ньому. Ось «схвалений системою» метод поводження з ними. : - /

У певному сенсі, як-небудь приємно, що systemd фіксує всі ці речі, оскільки через деякий час вони видалять їх автоматично, а також полегшує завантаження відмов про збої для звітів про помилки.

Але це була різка зміна з малою кількістю способів оповіщення чи підказок для людей, які знали, як спрацьовують кореневища до того, як Systemd включився. Навіть видалення файлу з назвою "core.pid.txt" з інструкціями використовувати coredumpctl, щоб отримати ваш coredump, а також як вимкнути створення .txtфайлів було б великою підмогою, хоча вони також засмітили файлова система на деякий час.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.