我在 sles12 env 上看到一个问题,为系统服务创建核心转储(如下面的 java 应用程序)。需要一些帮助来了解 sles12 核心转储创建过程。
我的目标是设置一个ulimit
适用于所有进程(用户启动、systemd 启动或其他进程)的配置。能实现吗?
条件: 1. 由于以下配置,我们期望所有进程默认创建转储:文件/etc/security/limits.conf已普遍配置为供所有进程使用极限值到unlimited
)。 2.我的应用程序是一个java jar,正在由systemd实例化。
答案1
在我的 Fedora 系统上,man limits.conf
说它仅影响用户会话。它是使用PAM 模块应用的pam_limits
。
所有 systemd 单元的默认 ulimit 都可以在 中设置/etc/systemd/system.conf
,例如DefaultLimitCORE=
。看man systemd-system.conf
。如果未指定值,则使用从内核继承的默认值。
参考资料中也提到了这一点man systemd.exec
,其中讨论了为特定 systemd 服务设置 ulimit。