gpt4 book ai didi

c - 如何自动运行 ulimit -c unlimited

转载 作者:太空狗 更新时间:2023-10-29 11:33:05 25 4
gpt4 key购买 nike

我正在尝试为从我的 rootfs 生成 coredump 文件提供支持,我已经用“ulimit -c unlimited”命令和“* hard core -1”修改了/etc/limits 文件,现在当我给 kill -6 $ $ ,期望生成核心文件,但要获取此核心文件必须显式运行 ulimit -c unlimited 。

但我希望它自动发生,不需要在 shell 中再次运行 ulimit -c unlimited 。

谁能告诉我我必须做出哪些改变才能使同样的事情发生

最佳答案

从程序中您可以使用 setrlimit(RLIMIT_CORE, ...)设置核心文件的最大大小。指定无限大小传递 RLIM_INFINITY .

有关详细信息,请阅读此处:http://manpages.debian.net/cgi-bin/man.cgi?query=getrlimit&sektion=2


使用 sysctl你可以做的命令

sysctl kernel.core_pattern=/var/core/core.%p

让内核创建名为 core.<pid> 的内核在/var/core .

添加kernel.core_pattern=/var/core/core.%p/etc/sysctl.conf使其永久化。 (运行 sysctl -p 以处理对 /etc/sysctl.conf 的更改)

此外%p (对于进程 id)还有如下其他占位符(taken from here):

%%  a single % character
%p PID of dumped process
%u (numeric) real UID of dumped process
%g (numeric) real GID of dumped process
%s number of signal causing dump
%t time of dump, expressed as seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC)
%h hostname (same as nodename returned by uname(2))
%e executable filename (without path prefix)
%E pathname of executable, with slashes ('/') replaced by exclamation marks ('!').
%c core file size soft resource limit of crashing process (since Linux 2.6.24)

关于c - 如何自动运行 ulimit -c unlimited,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18357085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com