问题

在某次因为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. Android中SharedPerforences的简单使用示例 --Android基础

    SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedP ...

  2. Python自学:第二章 数字 整数

    >>>2 + 3 5 >>>3 - 2 1 >>>3 * 2 6 >>>3 / 2 1.5

  3. 20181013xlVba据成绩条生成图片文件

    Sub CreateGoalPictures() '声明变量 Dim Wb As Workbook Dim Sht As Worksheet Dim Shp As Shape Dim Pic, End ...

  4. 20171205xlVBA往返航班组合

    'ClassPlan Public Org As String Public Des As String Public FlyNo As String Public StartDate As Vari ...

  5. hdu-1115 计算几何 求重心 凸多边形 面积

    思想是分割成三角形,然后求三角形的重心.那么多边形重心就是若干个三角形的重心带权求中心,可以用质点质心公式. #include <cstdio> #include <iostream ...

  6. 根据科目计算父科目ID,并递归累计求父科目的金额

    通常情况下,我们会从外部系统或者其他数据源得到以下树形结构的数据,并需要对其进行处理 其中,需要做的处理包括 1.计算每个科目的父科目ID,即PARENT_ID; 2.计算每个科目的ITEM_LEVE ...

  7. [CodeForces - 197A] A - Plate Game

    A - Plate Game You've got a rectangular table with length a and width b and the infinite number of p ...

  8. Utils--Cookie工具类

    Utils--Cookie工具类 package com.taotao.manage.util; import java.io.UnsupportedEncodingException; import ...

  9. 理解javascript封装

    封装可以被定义为对对象的内部数据表现形式和实现细节进行隐藏.通过封装可以强制实施信息隐藏. 在JavaScript中,并没有显示的声明私有成员的关键字等.所以要想实现封装/信息隐藏就需要从另外的思路出 ...

  10. 【转】Vue中mintui的field实现blur和focus事件

    首先上代码说总结: <mt-field label="卡号" v-model="card.cardNo" @blur.native.capture=&qu ...