![如何在不使用 sudo 的情况下更改核心转储位置](https://linux22.com/image/151123/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E4%BD%BF%E7%94%A8%20sudo%20%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E6%9B%B4%E6%94%B9%E6%A0%B8%E5%BF%83%E8%BD%AC%E5%82%A8%E4%BD%8D%E7%BD%AE.png)
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 中生成核心转储。