主机执行大多数命令报错Segmentation fault(中文系统显示段错误)

本文介绍了Linux主机遇到Segmentation Fault错误的原因,特别提到sysctl加载libprocps.so.4库失败的情况。解决方法是调整vm.max_map_count参数,通常将其设置为较高值如10000。关键在于理解内存映射限制和echo命令的内存消耗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux主机执行命令报错Segmentation fault(中文系统显示段错误)

一、错误描述:

linux主机执行命令报错Segmentation fault(中文系统显示段错误)以及sysctl报错sysctl: error while loading shared libraries: /lib64/libprocps.so.4: cannot apply additional memory protection after relocation: Cannot allocate memory

这是由于将系统中的vm.max_map_count参数设置的太低导致的,问同事果然将vm.max_map_count=0添加到了/etc/sysctl.conf文件中且执行了生效命令sysctl -p

二、解决方法:

echo 10000 > /proc/sys/vm/max_map_count (数值自己确定一般为65535或10000)**

三、问题分析:

vm.max_map_count参数是设置的每个进程能够使用的虚拟内存的大小,而linux中使用的大部分命令都为外部命令(如ls,cat),都需要消耗内存,所以就会报错 。

linux中大部分内部命令不会消耗内存(如echo,history),所以可以使用echo来解决这个问题。

而echo vm.max_map_count=10000修改这个值后,由于sysctl -p需要消耗内存,因此无法执行。所以直接修改这个参数的配置文件,echo 10000 > /proc/sys/vm/max_map_count 会立即生效。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值