时间:2021-05-25
一、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应用。运维起来会很容易!!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了java实现客户信息管理系统的具体代码,供大家参考,具体内容如下一、CMUtility工具类讲不同的功能封装为方法,就是可以直接通过调用方法
本文实例讲述了nodejs基于mssql模块连接sqlserver数据库的简单封装操作。分享给大家供大家参考,具体如下:注意:开启sqlserver服务器允许远
本文实例讲述了nodejs使用redis作为缓存介质实现的封装缓存类。分享给大家供大家参考,具体如下:之前在node下使用redis作为缓存介质,对redis进
挂载全局方法使用jsencrypt进行rsa加密原文链接:Js参数RSA加密传输,jsencrypt.js的使用*https://puted:{}}封装为单VU
一.简介上一篇文章我们已经实现了对单个服务实例的监控,当然在实际应用中,单个实例的监控数据没有多大的价值,我们更需要的是一个集群系统的监控信息,这时我们就需要引