使用pm2做守护nuxt服务进程踩坑记录

在阿里云上开的web服务进程总是莫名死掉,然后访问页面总是返回nignx的502页面,于是用pm2来做了一下守护进程,记录一下过程。

一、安装

$ npm install pm2@latest -g
# or
$ yarn global add pm2

我这步就比较惨,安装显示成功了,但是打pm2指令的时候还是显示指令找不到:

pm2 command not found

原因很简单,就是安装的pm2没有在$PATH目录下,不能直接执行。解决办法是在$PATH的一个目录(比如/bin)下建立软链接文件指向安装的pm2。

root@lushg:~# ln -s /home/lushg/.config/yarn/global/node_modules/pm2/bin/pm2 /bin/pm2

/home/lushg/.config/yarn/global/node_modules/pm2/bin/pm2是我安装pm2的路径,如果不知道pm2二进制文件安装在哪,可以使用locate指令(可以参照另一篇文章《linux快速文件查找》)找到安装位置,具体步骤:执行updatedb,再使用locate pm2找到安装位置。

再次执行pm2,果然成功了。

二、启动服务

启动指令格式如下:

pm2 start 指令名 --name 启动进程名 --  指令参数列表

正常启动服务时使用yarn start命令,按照官网的指令格式,使用pm2启动应该直接pm2 start yarn --name xxx -- start 就可以,可是启动后立马变为errored状态。

pm2启动服务errored

查看日志发现启动报错:

网上查找也没找到原因,最后曲线解决了这个问题,即直接改用npm启动:

pm2 start npm --name blog-ssr -- run start

三、一些有用的指令

  1. 查看pm2启动的进程列表
    pm2 list

    pm2进程查看

    这里我启动了个人网站的前后端服务,可以看到关于这两个进程相关的一些信息,包括id、进程名、状态等。
  2. 重启/关闭/删除进程

    pm2 restart 进程名/进程id
    pm2 stop 进程名/进程id
    pm2 delete 进程名/进程id
  3. 查看某个进程日志
    使用pm2 show 进程名/进程id可以查看进程的一些详细信息,比如日志路径、内存消耗等,并且在输出最后给出了查看日志的指令,非常方便。
    pm2进程信息

至此,已经可以使用pm2了,不过具体效果得以后才知道(网站几天一停也是太折腾了~~)站点服务果然稳了(2019/12/05)。

想了解完整pm2的信息可以访问pm2官网

¥赞赏