我们的node项目在服务器上运行会出现个问题如果我们关闭了服务器连接就会出现node项目停止的问题,我使用express编写接口,就遇到了这个问题,我们需要一个可以在服务器上长久运行项目的方式,一般需要个进程守护者。forever和pm2还有supervise
其中egg.js使用pm2有篇文章可以看下Egg.js 进程管理为什么没有选型 PM2 ?
forever的操作
全局安装 npm install forever -g
启动项目 forever start index.js
启动项目并进行监控 forever start -w app.js
(基本上我不用,有时候会异常我几次被卡住)
上面所述的卡住会出现端口好被占用问题 先查询端口号 netstat -lnp|grep (端口号比如6666)
然后得到此端口的id后用kill -g 2878
停止端口使用
停止项目 forever stop index.js
停止所有 forever stopall
停止id从下面的运行的forever找 forever stop [id]
查看在运行的forever forever list
重启所有应用 forever restartall
重启所有应用 forever restart index.js
输出日志和错误 forever start -l forever.log -o out.log -e err.log app.js
指定forever信息输出文件,当然,默认它会放到~/.forever/forever.log forever start -l forever.log app.js
指定app.js中的日志信息和错误日志输出文件,-o
就是log输出的信息,-e
就是error输出的信息
这样正常打印会在log.log文件里,错误打印会在err.logforever start -o log.log -e err.log app.js
pm2的操作
全局安装 npm install pm2 -g
启动项目 pm2 start index.js
停止项目 pm2 stop index.js
查看日志 pm2 logs app
查看进程 pm2 list
重启和forever差不多 pm2 restart