最根本的关闭方式是修改/etc/security/limits.conf将core设为0并重启系统;再执行find /home -name "core*" -delete清理残留,必要时配合禁用systemd-coredump服务。

银河麒麟V10系统中,软件崩溃时自动生成的dump文件(如core.*或程序崩溃数据)会持续占用磁盘空间,且重启后反复出现,严重影响办公环境整洁与存储健康。这些文件并非系统级内核转储,而是用户态进程触发的core dump,由内核参数和PAM限制共同控制,关闭需从配置层直接切断生成源头。
修改limits.conf禁用core dump生成
这是最根本、最通用的关闭方式,适用于所有基于systemd的麒麟V10桌面版(SP1/SP2/SP3),操作后新启动的进程将不再产生任何core文件。
第一步:打开终端,执行命令编辑系统资源限制配置文件:
sudo pluma /etc/security/limits.conf
第二步:在文件末尾找到形如以下两行的内容:
* soft core 0
* hard core 0
若不存在,则手动添加;若存在且值不为0(如1000000或unlimited),必须将其统一改为0。
第三步:保存文件并退出编辑器。该配置不会立即生效,需配合下一步操作。
第四步:执行ulimit -c 0使当前终端会话立即禁用core生成。注意:【此命令仅对当前shell及其子进程有效,不改变系统全局行为】。
第五步:重启系统,确保所有用户会话加载新的limits策略。重启后,任意程序崩溃都不会再生成core.*文件。
清理已存在的崩溃残留文件
limits.conf修改只阻断新增,已有dump文件仍驻留在磁盘中,需主动清除,否则“程序崩溃数据”文件夹仍会显示大量旧文件。
执行命令递归查找并删除用户主目录下所有core开头的文件:
find /home -name "core*" -type f -delete 2>/dev/null
若使用非默认用户目录(如挂载在/mnt/data/users),请将/home替换为对应路径。这一步必须在limits生效后执行,否则刚删完又会立刻生成新的core文件。
执行完成后,进入“个人文件夹→文档”或“下载”等常用位置,确认“程序崩溃数据”文件夹已为空或自动消失。
方法二:通过systemd-coredump服务控制(可选增强)
麒麟V10默认启用systemd-coredump作为核心转储处理器,它会接管所有core dump并压缩存入/var/lib/systemd/coredump/。即使limits设为0,部分特权进程仍可能绕过限制写入——此时需停用该服务。
方法一:完全禁用systemd-coredump服务
sudo systemctl stop systemd-coredump.socket systemd-coredump@.service
sudo systemctl disable systemd-coredump.socket systemd-coredump@.service
方法二:保留服务但禁止写入(推荐)
编辑配置文件:sudo nano /etc/systemd/coredump.conf
将Storage=行改为Storage=none
保存后执行:sudo systemctl kill --signal=SIGUSR2 systemd-coredump
注意:【Storage=none设置后,systemd将丢弃所有收到的core dump,不写磁盘也不记录日志】。该操作不影响limits.conf效果,属于双重保险。











