我試圖從我的rootfs提供對coredump文件生成的支持,我用「ulimit -c unlimited」命令和「* hard core -1」修改了/ etc/limits文件,現在當我殺死-6 $$時,期待覈心文件的生成,但要獲得這個核心文件必須明確運行ulimit -c unlimited。如何自動運行ulimit -c unlimited
但我希望它自動發生,不需要在shell中再次運行ulimit -c無限制。
誰能告訴我什麼樣的變化我必須做出同樣的情況發生
我試圖從我的rootfs提供對coredump文件生成的支持,我用「ulimit -c unlimited」命令和「* hard core -1」修改了/ etc/limits文件,現在當我殺死-6 $$時,期待覈心文件的生成,但要獲得這個核心文件必須明確運行ulimit -c unlimited。如何自動運行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
有內核創建/var/core
名爲core.<pid>
核心。
將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)
感謝@alk,我正在尋找這樣的東西,所以我需要在/ etc/sysctl中指定sysctl kernel.core_pattern =/var/cor/core。%p。 conf?我真的需要明確運行ulimit -c unlimited嗎? –
@AmitSinghTomar:'kernel.core_pattern'指定**放置核心文件的位置**以及**如何命名它。 – alk
很好的@alk但它不會解決我的問題,我們在/ etc/limits文件中設置核心文件的最大大小? –
把它放在你'.profile'文件? – Nobilis
添加行到你的shell啓動文件,可能是'〜/ .profile'。 – devnull
可能想閱讀[this](http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html)。看起來你可以做一些關於如何設置你自己的配置文件的信息。 – Nobilis