forrtl: severe(174):SIGSEGV,segmentation fault occurred 问题解决 (ulimit -s 设置堆栈最大值)

之前用VASP计算过程中出现forrtl: severe(174):SIGSEGV, segmentation fault occurred 的错误,如下图:
这里写图片描述
这是由于我们运行程序较大,而Linux系统初始的堆栈大小(stack size)太小的缘故。我们只要将其调大,一般把stack size设置成256M或者没有限制,这样就没有段错误了!命令为:
ulimit -s 262140

ulimit -s unlimited
但是这样只是临时的,要永久生效需要修改两个文件:
1) 在/etc/security/limits.conf 中加上:
* soft stack unlimited
* hard stack unlimited
其中:
*: 所有文件生效
stack: 堆栈最大值
unlimited: 没有限制,也可以根据自己电脑情况改成数字(例如262140)
2) 在/etc/pam.d/login文件中添加:
session required /lib/security/pam_limits.so
其中:
/lib/security/pam_limits.so 为自己电脑中的位置,32位中为/lib 64位中改为/lib64

注:由于博主自己也是刚开始学习,对linux系统并不是特别熟悉,以上内容是自己试验的结果,仅供大家参考,欢迎各位大神批评指正。

  • 29
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
回答: 当出现"SIGSEGV, segmentation fault occurred"的错误时,通常表示程序发生了段错误。段错误是一种常见的编程错误,它通常是由于访问了无效的内存地址或者访问了未分配的内存空间导致的。根据引用\[1\]中的参考资料,有几个可能的原因导致段错误的发生。首先,可能是由于CFL错误导致的。CFL错误是指Courant-Friedrichs-Lewy条件不满足,这可能导致数值模型的不稳定性,从而引发段错误。其次,输入数据的问题也可能导致段错误的发生。检查输入数据文件中的各种变量,确保没有任何异常。另外,模型域设置问题也可能导致段错误的发生。检查模型域的设置是否正确。根据引用\[2\]中的建议,可以尝试下载官方提供的数据,并在下载完成后检查数据的大小,以确保数据完整。最后,根据引用\[3\]中的错误信息,还可能是由于程序中的某个部分出现了错误,导致段错误的发生。在这种情况下,需要仔细检查程序的代码,找出可能引发段错误的部分,并进行修复。 #### 引用[.reference_title] - *1* *2* [WRF运行wrf.exe出现forrtl: severe (174): SIGSEGV, segmentation fault occurred问题原因与解决合集](https://blog.csdn.net/weixin_42487488/article/details/119703861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [forrtl: severe (174): SIGSEGV, segmentation fault occurred](https://blog.csdn.net/Theo93/article/details/107990637)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值