问题

在某次因为SRE升级域名问题,导致了Node服务器代码死循环了,产生的504(Gateway timeout)错误。

登录到机器上看,正在用pm2查问题的原因中,突然发现错误从504变成的502。

也就是Node服务彻底挂掉了,准备用PM2重启服务,发现PM2无法启动。

执行任何PM2命令都提示以下信息:

$ pm2 list
[PM2] Spawning PM2 daemon with pm2_home=/home/sankuai/.pm2

现象

后经查,发现机器的磁盘空间被占满。猜测因为是Node服务因为死循环而日志把机器的磁盘给打满了,导致了PM2的守护进程无法启动。

$ df -hl
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 24G 16M 100% /
tmpfs 937M 0 937M 0% /dev/shm
/dev/vdc1 99G 1.3G 93G 2% /opt

遂进入PM2的默认log日志目录,发现果然如此:

$ ll
total 20662092
-rw-rw-r-- 1 sankuai sankuai 20652240896 Jun 30 11:28 boot-error-0.log
-rw-rw-r-- 1 sankuai sankuai 505733120 Jun 30 11:28 boot-out-0.log

解决方案

删除日志文件:

$ rm boot-error-0.log
$ rm boot-out-0.log

再次查看磁盘空间:恢复正常

$ df -hl
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 3.7G 20G 16% /
tmpfs 937M 0 937M 0% /dev/shm
/dev/vdc1 99G 1.3G 93G 2% /opt

再次启动PM2,PM2恢复正常:

$ pm2 list
┌──────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────┬─────────────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ watching │
├──────────┼────┼──────┼──────┼────────┼─────────┼────────┼─────┼─────────────┼──────────┤
│ boot │ 0 │ fork │ 4014 │ online │ 0 │ 14m │ 0% │ 1001.9 MB │ disabled │
└──────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────┴─────────────┴──────────┘
Use `pm2 show <id|name>` to get more details about an app

PM2报错‘Spawning PM2 daemon with pm2_home...’的解决方案的更多相关文章

  1. Python3 报错'latin-1' codec can't encode character 解决方案

    Python3 报错'latin-1' codec can't encode character 解决方案 在更新数据库操作时,报错: UnicodeEncodeError: 'latin-1' co ...

  2. centos安装pm2报错

    报错信息: /usr/lib/node_modules/pm2/node_modules/chalk/source/index.js:103 ...styles, 这个问题其实很简单,就是npm和no ...

  3. linux服务器使用Jenkins+gradle+git打apk包,报错Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)

    linux服务器使用Jenkins+gradle+git打apk包,遇到的错误Gradle build daemon disappeared unexpectedly (it may have bee ...

  4. 解决 docker 报错: Error starting daemon: error initializing graphdriver: backing file system is unsupported for this graph driver

    CentOS 7.5 x64下 sudo yum install docker -y systemctl enable docker systemctl start docker 发现启动失败 jou ...

  5. 【亲测有效】Centos安装完成docker后启动docker报错docker: unrecognized service的两种解决方案

    今天在学习Docker的时候 使用yum install docker安装完后启动不了,报错如下: [root@Sakura ~]# service docker start docker: unre ...

  6. VS2017 启动调试报错:ID为{....}进程未启动解决方案

    今天遇到这么一个问题,打开VS启动调试,始终报错,如下图: 我重启VS,甚至重启电脑都不得行,那个进程号还在变化,就在网上查找资料,各式各样的解决方案,这里我记录我成功的方案. 打开项目文件地址,在解 ...

  7. Tomcat启动报错:[Failed to start component]的解决方案

    在MyEclipse中启动Tomcat,该Tomcat仅部署了一个报错项目,启动Tomcat Server的全部信息如下: usage: java org.apache.catalina.startu ...

  8. CocoaPods安装/更新报错While executing gem ... (OpenSSL::SSL::SSLError)解决方案

    今天给新买的MacBook Pro更新CocoaPods,结果上来就报错,出师不利. HeinocdeMacBook-Pro:~ Heinoc$ sudo gem update --system Pa ...

  9. 接口调用 读取图片报错 Access to the path '' is denied.解决方案

    调用接口 读取服务器上 图片 报错: Server was unable to process request. ---> Access to the path '图片路径' is denied ...

随机推荐

  1. BroadcastReceiver(广播)的静态注册和动态注册 --Android开发

    BroadcastReceiver是安卓四大组件之一,本例通过代码的方式演示静态注册和动态注册. 1.静态注册 静态注册只需要AndroidManifest.xml中进行配置: AndroidMani ...

  2. Node.js 知识(教程)

    JavaScript on the Server JavaScript was originally built for web browsers, but with Node.js we can u ...

  3. Children's Game UVA - 10905

    看90,956这样的串,在比较完之前,就确定大小的,必定选大的放在前.而x=98,y=980;这样的,比较x+y和y+x的大小.如果x+y更小,y就放前. #include <iostream& ...

  4. apply、call

    call(),apply() 1.每个函数都包含两个非继承而来的方法:call()和apply() 2.在特定的作用域内调用函数,等于设置函数体内的this对象,以扩充函数赖以运行的作用域 3.app ...

  5. stark 组件 url 二级分发的实现

    模拟 admin 组件url设计思路 项目urls 文件中: from django.contrib import admin from django.urls import path from st ...

  6. 利用phpqrcode二维码生成类库和imagecopymerge函数制拼接图片的经验

    前期准备 引入phpqrcode类库(下载地址:https://sourceforge.net/projects/phpqrcode/) PHP开启GD扩展库支持 1.利用phpqrcode生成二维码 ...

  7. python记录_day07

    一.基本数据类型补充 1.列表的拼接用join()方法 li = ["hello","world"] s = "_".join(li) pr ...

  8. DP 租用游艇

    洛谷P1359租用游艇 分析:这个游艇我看到题目下意识的就想将dp数组设为dp[i][j]表示i到j之间的最短距离,但题目上要求的只是从起点到终点的距离,这样设只是自找麻烦. 直接设成dp[i]表示从 ...

  9. bzoj3884: 上帝与集合的正确用法 扩展欧拉定理

    题意:求\(2^{2^{2^{2^{...}}}}\%p\) 题解:可以发现用扩展欧拉定理不需要很多次就能使模数变成1,后面的就不用算了 \(a^b\%c=a^{b\%\phi c} gcd(b,c) ...

  10. URL和URI的不同

    URL是什么?有什么用? URL(统一资源定位符)是Internet上资源的地址,可以定义为引用地址的字符串,用于指示资源的位置以及用于访问它的协议. URL是在网络上定位资源的最普遍使用的方式,它提 ...