systemd:获取由xinetd启动的服务的核心转储

我最近升级了一个系统到openSUSE 13.1。 我们通过xinetd在系统上运行一个定制的服务,并且在启动xinetd启用核心转储之前,在旧的xinetd init脚本中有一行ulimit -c unlimited 。 由于openSUSE 13.1使用systemd,这不再工作。

即使有确认崩溃的内核日志消息, systemd-coredumpctl也不会find任何核心转储。 从bash手动启动服务,然后发送它SIGSEGV确实在我们configuration的目录中创build了一个核心转储。 我如何获得核心转储?

事实certificatesystemd支持configuration文件中的设置限制,信息只是散布在各个手册页中。 根据systemd.exec ,使用LimitCORE设置核心转储创build/文件大小的限制。 此外,可以修改单元/服务configuration而不必修改系统提供的configuration文件。 更多信息在ArchLinux Wiki中 。 因此,使用以下内容创build文件(和父目录) /etc/systemd/system/xinetd.service.d/core.conf

 [Service] LimitCORE=infinity 

然后执行

 # systemctl daemon-reload # systemctl restart xinetd 

激活创build核心转储所需的更改。