forever让nodejs应用后台执行
发布于 12 年前 作者 tecshuttle 144181 次浏览 最后一次编辑是 8 年前

nodejs一般是当成一条用户命令执行的,当用户断开客户连接,运用也就停了,很烦人。如何让nodejs应用当成服务,在后台执行呢?

最简单的办法:

$ nohup node app.js &

但是,forever能做更多的事情,比如分别记录输出和错误日志,比如可以在js中作为api使用。

$ sudo npm install forever -g   #安装
$ forever start app.js          #启动
$ forever stop app.js           #关闭
$ forever start -l forever.log -o out.log -e err.log app.js   #输出日志和错误

命令语法及使用 https://github.com/nodejitsu/forever

9 回复

我遇到 stop 不能正常执行的… 不知道怎么办诶

start之后再运行list,显示“info: No forever processes running”,运行stop、restart等无效,难道进程不是持续的? 还有看文档“-w”参数是监视js文件改动的吧,是不是文件改动后即自动重载呢?可是感觉没有效果啊

嗯 ,就是一个协助nodejs自启动的工具,可惜是外部的。如果部署到云端服务器,这个就没有作用了。有的web框架中可以实现自启动,如果文件发生改变自启动,如果出现异常自启动,如果程序假死自启动。但是好像都需要配置一下。

看到这个了,有空试一下这个.

为什么我用npm install 安装forever出现错误enter image description here

求各位大神解救~或是除了以上方法还有什么方法能够安装forever呢?

nohup node app.js &

这个有问题的,关闭控制台后再有输出NODE就变僵尸了

nohup node app.js > /foo/log.txt 2>&1 & 足矣

个人觉着forever的几个好处

1, daemon 不用自己写 2, 自动重启, 特别适合web项目 3, 进程管理

forever -w app.js -w 参数是自动监控文件变化,文件修改保存了自动重启app.js。非常爽。唯一不爽的是那个 .foreverignore 不起作用,作者一直没有修改。

回到顶部