迹忆博客
当前位置: 主页 > 学无止境 > 操作系统 > 文章

Nodejs修改代码自动重新启动

发布时间: 2016-07-08 作者: 迹忆 浏览次数:

NodeJs修改代码以后可以自动重新启动,省去了我们再ctr+c然后用node 的麻烦。但就在时间上来说,如果是项目已经上线正常运行,修改的地方不多,那我们自己手动还没什么问题。但是如果是在开发的过程中,每次写完代码都需要手动去停止服务然后再开启服务,那真的是相当的麻烦了。

作为一个程序员,对这种重复的事情会感到很烦的。

现在在这里我向大家介绍几种使Nodejs自动重新启动的方法,省去大家手动重启的麻烦。

forever实现NodeJs自动重启

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/bash
export LANG=zh_CN.UTF-8
 
REPOS="$1"
REV="$2"
SVN=/usr/bin/svn
WEB=/www/nodejs
LOG=/data/home/auto_svn.log
$SVN update $WEB --username uname –password password
 
#To detect whether the node process exists
ps -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 ];then
   pid=`ps -A | grep node | awk '{print $1}'`
   kill -9 $pid
fi
#Start the node process
nohup node /www/nodejs/index.js >> /log/nodejs.log 2>&1 &

这样我们就可以实现修改代码以后自动重启NodeJs服务了。

以上就是我要对大家介绍的三种方式。当然,这里需要说明一下。使NodeJs自动重启的方法又很多,它并不是一成不变的,我们完全可以根据自己的开发环境来选择相应的适合自己的方式。

就像一、二两种方式,那可以说是通用方式,可以用在不同的环境中。像第三种方式,如果我们是使用svn同步代码,那就没有问题。如果我们不是使用的svn同步代码呢,那它是不是就不适用了。所以说,具体使用哪种方式还要看自己的开发环境是怎样的。

那本篇就向大家介绍这几种方式,希望对大家有所帮助。

除非注明转载,本站文章均为原创,欢迎转载,转载请以链接形式注明出处

本文地址: