手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >使用upstart把nodejs应用封装为系统服务实例
使用upstart把nodejs应用封装为系统服务实例
摘要:一、nodejs应用普通部署方式介绍终于要把nodejs的应用程序部署上线了,把源代码通过git复制到目录下面复制代码代码如下:/root/...

一、nodejs应用普通部署方式介绍

终于要把nodejs的应用程序部署上线了, 把源代码通过git复制到目录下面

复制代码 代码如下:/root/deploy/movie

然后搞命令:

复制代码 代码如下:

~ cd /root/deploy/movie

node ./app.js

上面的方式,nodejs程序会在当前的console界面中运行,一旦console结束,应用也会停止。我们改一下命令,让程序在后台运行

复制代码 代码如下:

~ node ./app.js &

[1] 21333

[2013-06-21 09:38:30.696] [INFO] console - Start App: http://jb51.net

[2013-06-21 09:38:30.700] [INFO] console - Express server listening on port 3000

这样程序就就在后台启动了。进程正常运行着,我也不用做太多的事情。

如果我想停止这个程序,怎么办呢? 找到nodejs的系统进程,再杀死。

复制代码 代码如下:

~ ps -aux|grep node

root 21333 0.6 3.7 909200 38292 pts/0 Sl 09:38 0:00 node app.js

~ kill -9 21333

直接暴力解决。如果能像系统服务一样,来启动和关闭nodejs应用,多好啊!下面就通过upstart来完成把nodejs应用封装为系统服务。

二、 把应用封装为upstart任务脚本

复制代码 代码如下:

~ vi /etc/init/nodejs-moive.conf

description "node.js jb51.net"

start on startup

stop on shutdown

script

export HOME="/root/deploy/movie"

echo $$ > /var/run/moiveme.pid

export NODE_ENV=production

exec /usr/bin/node /root/deploy/movie/server.js

#日志输出

#exec /usr/bin/node /root/deploy/movie/server.js >> /var/log/moiveme.log 2>&1

end script

pre-start script

echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> /var/log/moiveme.log

end script

pre-stop script

rm /var/run/moiveme.pid

echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> /var/log/moiveme.log

end script

三、 使用upstart管理nodejs应用

启动nodejs-moive应用(上面的任务脚本),进程ID:21257

复制代码 代码如下:

~ start nodejs-moive

nodejs-moive start/running, process 21257

~ tail -f /var/log/moiveme.log

[2013-06-21T09:21:17.122Z] (moive.me) Starting

~ ps aux|grep node

root 21257 8.0 3.7 909204 37824 ? Ssl 09:21 0:00 /usr/bin/node /root/deploy/movie/server.js

查看运行状态, 进程21257正常运行

复制代码 代码如下:

~ status nodejs-moive

nodejs-moive start/running, process 21257

杀死nodejs应用进程21257,通过upstart管理,nodejs-moive应用会自动重启

复制代码 代码如下:

~ kill -9 21257

#自动重启日志

~ tail -f /var/log/moiveme.log

[2013-06-21T09:21:33.662Z] (moive.me) Starting

#查看系统进程,发现进行ID变了

~ ps -aux|grep node

root 21280 9.1 3.7 909204 37704 ? Ssl 09:21 0:00 /usr/bin/node /root/deploy/movie/server.js

#查看进程状态,进程ID确实变了,而且是自动完成的

~ status nodejs-moive

nodejs-moive start/running, process 21280

这样很方便地我们可以通过upstart,以系统服务的方式管理nodejs应用。运维起来会很容易!!

【使用upstart把nodejs应用封装为系统服务实例】相关文章:

js实现简单div拖拽功能实例

AngularJS学习笔记之ng-options指令

超级强大的表单验证

jquery使用each方法遍历json格式数据实例

分享十五款 jQuery 社交网络分享插件

在b/s开发中经常用到的javaScript技术

JQuery插件ajaxfileupload.js异步上传文件实例

在ASP.NET MVC项目中使用RequireJS库的用法示例

js实现鼠标划过给div加透明度的方法

使用Node.js处理前端代码文件的编码问题

精品推荐
分类导航