在阿里云上开的web服务进程总是莫名死掉,然后访问页面总是返回nignx的502页面,于是用pm2来做了一下守护进程,记录一下过程。
一、安装
$ npm install pm2@latest -g
# or
$ yarn global add pm2
我这步就比较惨,安装显示成功了,但是打pm2指令的时候还是显示指令找不到:
原因很简单,就是安装的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状态。
查看日志发现启动报错:
网上查找也没找到原因,最后曲线解决了这个问题,即直接改用npm启动:
pm2 start npm --name blog-ssr -- run start
三、一些有用的指令
- 查看pm2启动的进程列表
这里我启动了个人网站的前后端服务,可以看到关于这两个进程相关的一些信息,包括id、进程名、状态等。pm2 list
-
重启/关闭/删除进程
pm2 restart 进程名/进程id pm2 stop 进程名/进程id pm2 delete 进程名/进程id
- 查看某个进程日志
使用pm2 show 进程名/进程id可以查看进程的一些详细信息,比如日志路径、内存消耗等,并且在输出最后给出了查看日志的指令,非常方便。
至此,已经可以使用pm2了,不过具体效果得以后才知道(网站几天一停也是太折腾了~~)站点服务果然稳了(2019/12/05)。
想了解完整pm2的信息可以访问pm2官网。