如何自动无限制地运行ulimit-c



我正试图从我的rootfs为核心转储文件生成提供支持,我已经用"ulimit-c unlimited"命令和"*hard-core-1"修改了/etc/limites文件,现在当我给kill-6$$时,期望生成核心文件,但要获得这个核心文件,必须显式运行ulimit-c unlimited。

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

有人能告诉我为了实现同样的目标,我必须做什么改变吗?

从程序中,您可以使用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

以使内核在CCD_ 5中创建名为CCD_。

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

除了%p(用于进程id)之外,还有其他占位符如下(取自此处):

%%  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)

相关内容

  • 没有找到相关文章

最新更新