abrt — использовать событие для копирования / перемещения coredump в пользовательское местоположение

Я не могу найти способ настроить мое событие abrt для копирования coredump в другое место. Причина, по которой я хочу сделать это, состоит в том, чтобы не допустить удаления abrt моих coredumps, если каталог сбоя превышает MaxCrashReportsSize, При условии, что у меня нет контроля над настройкой abrt, я хотел бы экспортировать coredump в каталог поддержки, как только он будет создан.

EVENT=post-create pkg_name=raptorio analyzer=CCpp
test -f coredump && { mkdir -p /opt/raptorio/cores; cp -f coredump /opt/raptorio/cores/$(basename `cat executable`).core; }

Это событие сохранит один coredump для каждого двоичного файла C / C ++ из моего RPM-пакета raptorio. Когда моя программа падает, abrt печатает следующие ошибки в системном журнале:

Aug 30 08:28:41 abrtd: mkdir: cannot create directory `/opt/raptorio/cores': Permission denied
Aug 30 08:28:41 abrtd: cp: cannot create regular file `/opt/raptorio/cores/raptord.core': No such file or directory
Aug 30 08:28:41 abrtd: 'post-create' on '/var/spool/abrt/ccpp-2016-08-30-08:28:10-31213' exited with 1

Я вижу, что событие abrt работает как root:root но его как-то посадили в тюрьму, возможно из-за SELinux? Я использую ABRT 2.0.8 на Centos 6.

0

Решение

/ opt не подходящее место для хранения временных файлов. ядра должны быть в / var / raptorio / cores, возможно. Увидеть Стандарт иерархии файловой системы

Предполагая, что ваша программа запускается как пользователь nobody, убедитесь, что никто не имеет прав на запись в этот каталог, и у вас все должно быть в порядке.

0

Другие решения

Других решений пока нет …