一只名叫tom的猫
forever是一种客户端的工具,可以使用其使NodeJs服务在后台运行。同样,也可以检测文件的改变然后自动重启NodeJs服务。forever安装方式如下# npm install forever –g运行上述命令,等待forever安装完成,然后我们就可以使用forever了。# forever start app.js上面的命令就可以开启NodeJs服务了,此时NodeJs服务已经在后端运行。是不是很简单。当然,上面的命令是最基本的开启NodeJs服务。但是仅仅用运行上述命令我们是没有办法查看打印信息的。因此,如果我们需要查看打印信息可以将这些信息输出到日志文件中。其命令如下# forever –l /log/forever.log –o /log/out.log –e /log/error.log app.js这样,我们再使用console.log()等打印的信息就可以在日志文件中查看到了。最后就是实现修改NodeJs代码以后服务自动重启,要使用-w选项。# forever –l /log/forever.log –o /log/out.log –e /log/error.log –w app.js这样,我们就可以达到最终的目的了。pm2实现NodeJs自动重启同样,和forever一样,pm2也是一种客户端的工具,也可以使NodeJs服务在后台运行。并且可以检测文件的改变然后自动重启NodeJs服务。pm2安装方式如下# npm install pm2@latest –g运行上述命令以后,等待pm2安装完成。# pm2 start app.js开启NodeJs服务。# pm2 start –l /log/pm2.log –o /log/out.log –e /log/error.log app.js将NodeJs的日志和打印的信息以及错误信息写进日志文件中,并开启NodeJs服务。# pm2 start –l /log/pm2.log –o /log/out.log –e /log/error.log app.js –watch上述命令可以检测文件的改变,然后重新启动NodeJs服务。使用是不是很简单,当然pm2的功能远不止于此。具体可以参考pm2详细教程。下面介绍一种非常规的方式。这种方式是根据自己的开发环境自己写的。有什么不足的地方还请大家多多指正。通过svn实现NodeJs的自动重启在实际的开发中,我本人使用的是linux服务器。我每次在本地写完NodeJs代码以后,通过Svn部署到服务器上。当然,这需要借助svn的钩子post-commit。也就是通过这个文件来实现NodeJs重启。对于svn同步代码到服务器上,有不清楚的可以参考《Linux服务器svn远程代码同步》这篇文章。下面我们直接奉上shell代码#!/bin/bashexport.UTF-8REPOS="$1"REV="$2"SVN=/usr/bin/svnWEB=/www/nodejsLOG=/data/home/auto_svn.log$SVN update $WEB --username uname –password password#To detect whether the node process existsps -A | grep node##The $? is 0 if the node process exists,otherwise 1.##If $? is 0,we will kill the node process.if [ $? -eq 0 ];thenpid=`ps -A | grep node | awk '{print $1}'`kill -9 $pidfi#Start the node processnohup node /www/nodejs/index.js >> /log/nodejs.log 2>&1 &这样我们就可以实现修改代码以后自动重启NodeJs服务了。以上就是我要对大家介绍的三种方式。当然,这里需要说明一下。使NodeJs自动重启的方法又很多,它并不是一成不变的,我们完全可以根据自己的开发环境来选择相应的适合自己的方式。就像一、二两种方式,那可以说是通用方式,可以用在不同的环境中。像第三种方式,如果我们是使用svn同步代码,那就没有问题。如果我们不是使用的svn同步代码呢,那它是不是就不适用了。所以说,具体使用哪种方式还要看自己的开发环境是怎样的。