Linux

如何在沒有 sudo 的情況下更改核心轉儲位置

  • April 3, 2019

CentOS 6.10 版(最終版)

GNU gdb (GDB) 紅帽企業 Linux (7.2-92.el6)

我的程序崩潰了,並生成了一個核心轉儲。不幸的是,它試圖將它轉儲到我的主目錄中,而我的主目錄並沒有足夠的空間來容納它:

BFD:警告:core.30906 被截斷:預期核心文件大小 >= 155732344832,找到:29430394880。

我需要進行一些設置,以便當我啟動我的程序時,任何核心轉儲都會轉到我指定的位置,那裡有可用空間。我看過這裡,但答案似乎需要 sudo,並適用於所有帳戶。我需要一些無需 root 訪問即可工作且僅適用於我的帳戶的東西。

您可以使用/sbin/sysctl kernel.core_pattern無 root 訪問權限來查看目前的核心文件命名模式。

如果模式不以/字元開頭,則核心文件將相對於轉儲核心的程序的目前工作目錄創建。因此,如果您的程序位於$HOME/myprogram,請執行以下操作:

cd /location/with/enough/space/and/writable/for/you
$HOME/myprogram

現在核心轉儲應該在所需的位置而不是在 $HOME 中生成。

引用自:https://unix.stackexchange.com/questions/510111