如何在不使用 sudo 的情况下更改核心转储位置

如何在不使用 sudo 的情况下更改核心转储位置

CentOS 版本 6.10(最终版)

GNU gdb (GDB) 红帽企业 Linux (7.2-92.el6)

我的程序崩溃并生成核心转储。不幸的是,它试图将其转储到我的主目录中,而该目录几乎没有空间容纳它:

BFD:警告:core.30906 被截断:预期核心文件大小 >= 155732344832,发现:29430394880。

我需要进行一些设置,以便当我启动程序时,任何核心转储都将转到我指定的有可用空间的位置。我看过这里,但答案似乎需要 sudo,并且适用于所有帐户。我需要一些无需 root 访问权限即可工作且仅适用于我的帐户的东西。

答案1

您可以使用/sbin/sysctl kernel.core_pattern无 root 访问权限来查看当前的核心文件命名模式。

如果模式不以字符开头/,则将相对于转储核心的程序的当前工作目录创建核心文件。因此,如果您的程序位于$HOME/myprogram,请执行以下操作:

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

现在应该在所需位置而不是 $HOME 中生成核心转储。

相关内容