您好,欢迎来到社区排行榜!
当前位置:社区排行榜 » 站长资讯 » 技术教程 » 云计算 » 文章详细 订阅RssFeed

解决-bash: fork: Cannot allocate memory

来源:本站原创 浏览:1230次 时间:2023-10-10

昨日有个客户说服务器搭建的网站打不开了,后来经过排查发现是apache、mysql和php均停止运行了,相比优势超载导致的,

于是乎就进行了先行启动这些软件,但是启动完成之后,不得了了,宝塔面板进不去了,而且SSH有时候还是连接不上,还会提示-bash: fork: Cannot allocate memory这个错误信息,经过不懈的努力,得到了以下解决方案:

情况1:如果SSH连不上的情况下,直接重启云服务器,可能要重复几次,直到SSH能连上为止

情况2:连上SSH之后,输入“bt”命令仍出现宝塔的命令行,但是宝塔面板仍打不开,如下述代码所示:

===============宝塔面板命令行==================
(1) 重启面板服务           (8) 改面板端口
(2) 停止面板服务           (9) 清除面板缓存
(3) 启动面板服务           (10) 清除登录限制
(4) 重载面板服务           (11) 设置是否开启IP + User-Agent验证
(5) 修改面板密码           (12) 取消域名绑定限制
(6) 修改面板用户名         (13) 取消IP访问限制
(7) 强制修改MySQL密码      (14) 查看面板默认信息
(22) 显示面板错误日志      (15) 清理系统垃圾
(23) 关闭BasicAuth认证     (16) 修复面板(检查错误并更新面板文件到最新版)
(24) 关闭动态口令认证      (17) 设置日志切割是否压缩
(25) 设置是否保存文件历史副本  (18) 设置是否自动备份面板
(26) 关闭面板ssl           (28) 修改面板安全入口
(0) 取消                   (29) 取消访问设备验证
===============================================

这个情况下我们只需要输入:free查看内存,和重启服务器一样,一次出不来多试几次

然后查看下最大进程数

sysctl kernel.pid_max (这里是我已经改过的)

然后查看进程数ps -eLf | wc -l 查看 进 程数

这么做的目的是为了看看进程数是否超过最大进程数,如果超过,执行以下命令修改最大进程

echo 1000000 > /proc/sys/kernel/pid_max 修改后系统恢复

永久生效

echo "kernel.pid_max=1000000 " >> /etc/sysctl.conf

sysctl -p

这时候宝塔面板应该是可以上去了,如果还不行可以输入bt命令,输入16(修复面板并升级最高版本)

之后再次登录宝塔就可以了,如果仍上不去可以尝试下清理浏览器缓存


推荐站点

  • 聚捷云
    聚捷云

    聚捷云-企业级云服务器提供商,为用户域名注册、虚拟主机、服务器租用托管、网站建设、网站备案等一站式服务,帮助企业及个人轻松上云。

    https://www.jujieyun.com/
  • 酷盾
    酷盾

    酷盾(Kdun.com) 提供快速、稳定、安全的高防服务器,有效防御CC、DDOS攻击,高防服务器单个数据中心具备1000G DDOS防御能力,总体防御超5000G。护航您的不同地区业务。

    https://www.kdun.com/aff/LAJEUSBD
  • 华晨云
    华晨云

    华晨网络科技,专注于云计算服务,是由义乌市华晨网络科技有限公司倾力打造的云计算平台,整合了云服务器、云储存、负载均衡、流量清洗、服务器托管、服务器租用、域名注册等互联网基础设施服务,浙江电信、金华电信、义乌电信、联通、移动核心合作伙伴。

    www.zj-idc.com
  • 阿里云
    阿里云

    阿里云——阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司之一。提供免费试用、云服务器、云数据库、云安全、云企业应用等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。免费备案,7x24小时售后支持,助企业无忧上云。

    www.aliyun.com
  • 百度智能云
    百度智能云

    百度智能云致力于为企业和开发者提供全球领先的人工智能、大数据和云计算服务,加速产业智能化转型升级

    cloud.baidu.com