问题描述
在公司云服务器上搭建了一个Yapi项目,启动好项目,如果关闭xshell后,node项目就会停止运行,在访问的时候就会有下面的错误页面(很经典的Nginx错误页面)。我的启动命令如下:
npm start server/app.js >/dev/null 2>&1 &
查询网上有好几种解决方案大致如下:
- 编写sh脚本启动服务。
- 使用pm2
- 使用forever
第一种方法试过,但依然没有解决问题。试过第二种方法成功解决问题。其原理是pm2能自动守护进程,让服务常驻后台进行运行。其解决步骤如下:
## 全局安装pm2
npm install -g pm2
常用启动任务命令
## 启动脚本
pm2 start 你的js脚本
## 停止脚本
pm2 stop 你的js脚本
## 重启脚本
pm2 restart 你的js脚本
## 停止所有脚本
pm2 stop all
## 重启所有脚本
pm2 restart all
这里我使用pm2启动我的node js项目如下所示:
然后关闭Xsheel后页面不在报错,且服务运行正常。
如果想停止后台运行服务也可以使用pm2命令停止服务。