使用upstart把nodejs應(yīng)用封裝為系統(tǒng)服務(wù)實(shí)例
一、nodejs應(yīng)用普通部署方式介紹
終于要把nodejs的應(yīng)用程序部署上線了, 把源代碼通過(guò)git復(fù)制到目錄下面
然后搞命令:
~ cd /root/deploy/movie
node ./app.js
上面的方式,nodejs程序會(huì)在當(dāng)前的console界面中運(yùn)行,一旦console結(jié)束,應(yīng)用也會(huì)停止。我們改一下命令,讓程序在后臺(tái)運(yùn)行
~ 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
這樣程序就就在后臺(tái)啟動(dòng)了。進(jìn)程正常運(yùn)行著,我也不用做太多的事情。
如果我想停止這個(gè)程序,怎么辦呢? 找到nodejs的系統(tǒng)進(jìn)程,再殺死。
~ 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
直接暴力解決。如果能像系統(tǒng)服務(wù)一樣,來(lái)啟動(dòng)和關(guān)閉nodejs應(yīng)用,多好??!下面就通過(guò)upstart來(lái)完成把nodejs應(yīng)用封裝為系統(tǒng)服務(wù)。
二、 把應(yīng)用封裝為upstart任務(wù)腳本
~ 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應(yīng)用
啟動(dòng)nodejs-moive應(yīng)用(上面的任務(wù)腳本),進(jìn)程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
查看運(yùn)行狀態(tài), 進(jìn)程21257正常運(yùn)行
~ status nodejs-moive
nodejs-moive start/running, process 21257
殺死nodejs應(yīng)用進(jìn)程21257,通過(guò)upstart管理,nodejs-moive應(yīng)用會(huì)自動(dòng)重啟
~ kill -9 21257
#自動(dòng)重啟日志
~ tail -f /var/log/moiveme.log
[2013-06-21T09:21:33.662Z] (moive.me) Starting
#查看系統(tǒng)進(jìn)程,發(fā)現(xiàn)進(jìn)行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
#查看進(jìn)程狀態(tài),進(jìn)程ID確實(shí)變了,而且是自動(dòng)完成的
~ status nodejs-moive
nodejs-moive start/running, process 21280
這樣很方便地我們可以通過(guò)upstart,以系統(tǒng)服務(wù)的方式管理nodejs應(yīng)用。運(yùn)維起來(lái)會(huì)很容易!!
- nodejs入門教程一:概念與用法簡(jiǎn)介
- NodeJS測(cè)試框架mocha入門教程
- Nodejs極簡(jiǎn)入門教程(三):進(jìn)程
- Nodejs極簡(jiǎn)入門教程(二):定時(shí)器
- Nodejs極簡(jiǎn)入門教程(一):模塊機(jī)制
- nodejs使用express創(chuàng)建一個(gè)簡(jiǎn)單web應(yīng)用
- Docker實(shí)踐--部署Nodejs應(yīng)用
- NodeJS創(chuàng)建基礎(chǔ)應(yīng)用并應(yīng)用模板引擎
- NodeJS Web應(yīng)用監(jiān)聽(tīng)sock文件實(shí)例
- Nginx做NodeJS應(yīng)用負(fù)載均衡配置實(shí)例
- NodeJS學(xué)習(xí)筆記之Connect中間件應(yīng)用實(shí)例
- 使用forever管理nodejs應(yīng)用教程
- nodejs入門教程二:創(chuàng)建一個(gè)簡(jiǎn)單應(yīng)用示例
相關(guān)文章
windows系統(tǒng)下安裝yarn的詳細(xì)教程
yarn是一個(gè)新的JS包管理工具,它的出現(xiàn)是為了彌補(bǔ)npm的一些缺陷,下面這篇文章主要給大家介紹了關(guān)于windows系統(tǒng)下安裝yarn的詳細(xì)教程,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
node?+?multer?實(shí)現(xiàn)文件上傳過(guò)程
這篇文章主要介紹了node?+?multer?實(shí)現(xiàn)文件上傳過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
NPM 安裝cordova時(shí)警告:npm WARN deprecated minimatch@2.0.10: Pleas
這篇文章主要介紹了NPM 安裝cordova時(shí)警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to的相關(guān)資料,需要的朋友可以參考下2016-12-12
Node.js原理阻塞和EventEmitter及其繼承的運(yùn)用實(shí)戰(zhàn)
這篇文章主要介紹了Node.js原理阻塞和EventEmitter及其繼承的運(yùn)用實(shí)戰(zhàn),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
簡(jiǎn)單實(shí)現(xiàn)node.js圖片上傳
這篇文章主要為大家詳細(xì)介紹了node.js圖片上傳的簡(jiǎn)單實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
詳解如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Node.js腳手架
本篇文章主要介紹了如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Node.js腳手架,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12

