国产服务器如何修改core file size使其生效

文章讲述了在国产服务器上,系统默认corefilesize为unlimited的情况,提供了两种修改方法:通过`ulimit-c0`临时设置或在`/etc/security/limits.conf`中添加配置,然后重启或重新登录使更改生效。

国产服务器系统安装后,默认core file size文件大小为ulimited,如下图

修改方法有两种

法1:执行命令ulimit -c 0 临时生效,放到 .bash_profile文件最后 ,执行 source .bash_profile

法2:修改文件 /etc/security/limits.conf 添加如下

* soft core 0

* hard core 0

生效方式:重启或者退出当前会话重新登录

### 问题分析与解决方法 在使用 `ulimit -c unlimited` 命令尝试修改 core 文件大小限制时,如果遇到 `-bash: ulimit: core file size: cannot modify limit: Operation not permitted` 错误提示,通常表示当前用户没有足够的权限来修改该限制。这个问题的根源在于系统对用户或用户组设置的资源限制策略,特别是在 `/etc/security/limits.conf` 中定义的相关配置[^3]。 #### 解决方案 1. **编辑 limits.conf 文件** 使用 root 权限编辑 `/etc/security/limits.conf` 文件,并为相关用户添加以下两行配置: ```text username hard core unlimited username soft core unlimited ``` 其中 `username` 是需要修改 core 文件限制的用户名称。`hard` 表示硬限制,`soft` 表示软限制。将这两项都设置为 `unlimited` 可以允许该用户不受限制地生成 core 文件[^3]。 2. **验证修改** 修改完成后,切换到目标用户并再次执行命令: ```bash ulimit -c unlimited ``` 此时应该不会再出现错误信息,并且可以通过以下命令确认 core 文件大小限制是否生效: ```bash ulimit -a | grep 'core file size' ``` 3. **检查 PAM 配置(可选)** 在某些 Linux 发行版中,还需要确保 `/etc/pam.d/login` 或 `/etc/pam.d/sshd` 中包含以下行,以启用 `limits.conf` 的功能: ```text session required pam_limits.so ``` 如果这行不存在,请添加它以确保系统在登录时应用资源限制配置。 4. **重启服务或重新登录** 完成上述修改后,可能需要重新启动相关服务或者重新登录系统,以便使新的限制生效。 --- ### 注意事项 - **root 用户权限**:只有具有 root 权限的用户才能修改 `/etc/security/limits.conf` 文件。因此,在进行上述操作时,需要使用 `sudo` 或者直接以 root 身份登录。 - **系统安全性**:将 core 文件大小设置为 `unlimited` 可能会对磁盘空间造成影响,尤其是在程序频繁崩溃的情况下。建议根据实际需求合理调整此限制。 - **core 文件生成路径** 默认情况下,core 文件会生成在程序运行的当前目录下。可以通过修改 `/proc/sys/kernel/core_pattern` 文件来指定 core 文件的保存路径和命名格式。例如: ```bash echo "/tmp/core.%e.%p" > /proc/sys/kernel/core_pattern ``` 这将把 core 文件保存到 `/tmp` 目录下,并使用程序名和进程 ID 作为文件名的一部分。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值