情景一、以前在写node程序的时候都是node app.js 而后启动,要是修改了app.js中的内容以后想要更新,又得ctrl+c而后从新启动程序。javascript
情景二、为了能及时更新,引入了supervisor来管理进程,修改了app.js以后不用重启就当即更新了。可是命令行窗口一直存在,不能关闭java
情景三、node
引入forever管理进程,用法其实很简单:npm
npm install forever -g #安装 forever start app.js #启动应用 forever stop app.js #关闭应用 forever restartall #重启全部应用 #输出日志和错误 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 就是console.log输出的信息,-e 就是console.error输出的信息 forever start -o out.log -e err.log app.js # 追加日志,forever默认是不能覆盖上次的启动日志, # 因此若是第二次启动不加-a,则会不让运行 forever start -l forever.log -a app.js # 监听当前文件夹下的全部文件改动(不太建议这样) forever start -w app.js # 显示全部运行的服务 forever list ######中止操做 # 中止全部运行的node App forever stopall # 中止其中一个node App forever stop app.js # 固然还能够这样 # forever list 找到对应的id,而后: forever stop [id] # 开发环境下 NODE_ENV=development forever start -l forever.log -e err.log -a app.js # 线上环境下 NODE_ENV=production forever start -l ~/.forever/forever.log -e ~/.forever/err.log -w -a app.js #上面加上NODE_ENV为了让app.js辨认当前是什么环境用的