小虾虎鱼

小虾虎鱼

Forever实现Nodejs守护进程(后台运行)

作者 禾惠 发表于 2015/01/27,最后修改于 2015/01/27

每次启动nodejs程序都需要在命令窗口输入命令才能启动,但如果把命令窗口关闭则nodejs程序就会停止运行。在Windows服务器上可以不关闭窗口,但在Linux服务器上通过ssh连接服务器启动nodejs程序后在把ssh客户端关闭,那么nodejs程序也会随之关闭(当然也可以使用nohup命令实现)。

为何不适用nohup来挂起命令?因为如果nodejs崩溃了那么nohup就不能自动重启进程了,还有一个原因就是重启或关闭nodejs进程不方便,至少我觉得。为了解决这个问题,我使用了forever来守护进程,在此就记录一下使用forever实现nodejs后台运行的方法,forever的具体使用以及参数可以到github找。

在Ubuntu中(假设网站路径在/www/nodesite/下),在网站的根目录下创建一个文件start.sh,在文件中添加如下代码并保存:

forever start --uid mysite app.js

随后只需要cd到/www/nodesite/目录,再执行:sh start.sh即可启动nodejs,

forever stop mysite // 关闭进程
forever restart mysite // 重启进程


在Windows中(假设网站路径在D:\www\nodesite\下),在网站的根目录下创建一个文件start.bat,在文件中添加如下代码并保存:

@echo off
SET WEBFLODER=d:\www\nodesite

chdir /d %WEBFLODER%
echo forever starting...
forever start --uid mysite app.js

直接双击start.bat文件即可运行