欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在Linux上用forever實(shí)現(xiàn)Node.js項(xiàng)目自啟動(dòng)

 更新時(shí)間:2014年07月09日 08:50:12   投稿:hebedich  
在一臺(tái)計(jì)算機(jī)上手動(dòng)跑Node項(xiàng)目簡(jiǎn)單,node xx.js就搞定了,想讓Node項(xiàng)目后臺(tái)運(yùn)行,雖然不能直接用node命令搞定,但是在安裝了forever這個(gè)包以后,還是很輕松的。不過要是在遠(yuǎn)程服務(wù)器上構(gòu)建Node項(xiàng)目,如果沒法自啟動(dòng),一旦服務(wù)器重啟,那就麻煩了。

那么能否利用forever加啟動(dòng)腳本方式解決上述問題呢?答案當(dāng)然是肯定的,只不過有點(diǎn)麻煩,而且forever官方缺少詳細(xì)的配置文檔。我在配置的時(shí)候也走了一些彎路,下面詳細(xì)來說。

注:本文的實(shí)驗(yàn)環(huán)境是Ubuntu Server 12.04 LTS x86_64,在CentOS上的配置更簡(jiǎn)單一些

最早,我想著試試在/etc/rc.local中增加一句forever start xxx看看,結(jié)果發(fā)現(xiàn)Ubuntu(其他系統(tǒng)一樣)就不鳥我,主要矛盾就是mongodb使用這種方式就可以跑起來,forever就不行,無奈之下,還是從/etc/init.d的角度去考慮吧。

前提是要先把forever好,方法很簡(jiǎn)單,執(zhí)行如下命令就好:

npm install forever -g

安裝完成后,用一個(gè)簡(jiǎn)單的Node程序測(cè)試一下:

forever start test.js
forever stop test.js
forever restart test.js

只要不提示error,就表明forever是可以用的,也就是說用forever來后臺(tái)開啟一個(gè)Node項(xiàng)目的基本條件已經(jīng)具備,剩下的就是來編寫一個(gè)啟動(dòng)腳本了。

腳本的基本內(nèi)容如下,感謝原作者的辛勤勞動(dòng):

#!/bin/bash
### BEGIN INIT INFO
# Provides:  xiyoulib
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop:  0 1 6
# Short-Description: Start daemon at boot time
# Description:  Enable service provided by daemon.
### END INIT INFO
# chkconfig: 345 88 08
# description: Forever for Node.js

DEAMON=/node.js/XiyouLibNodeExpress/bin/www  #這里需要填寫你自己的Node項(xiàng)目的啟動(dòng)腳本文件
LOG=/node.js/log/log #可選,日志文件目錄
PID=/node.js/pid #必填內(nèi)容,用于記錄forever的進(jìn)程號(hào)

export PATH=$PATH:/usr/local/bin #在這里指定一下Node的可執(zhí)行程序安裝目錄,我的是/usr/local/bin
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules #這里是Node類庫的路徑

#往下的內(nèi)容就不用修改了

node=node
forever=forever

case "$1" in
 start)
  $forever start -l $LOG --pidFile $PID -a $DEAMON
  ;;
 stop)
  $forever stop --pidFile $PID $DEAMON
  ;;
 stopall)
  $forever stopall --pidFile $PID
  ;;
 restartall)
  $forever restartall --pidFile $PID
  ;;
 reload|restart)
  $forever restart -l $LOG --pidFile $PID -a $DEAMON
  ;;
 list)
  $forever list
  ;;
 *)
  echo "Usage: /etc.init.d/node {start|stop|restart|reload|stopall|restartall|list}"
  exit 1
  ;;
esac

在這里提醒一下:最好為Node項(xiàng)目單獨(dú)在根目錄下建立一個(gè)目錄,如/node.js,然后權(quán)限設(shè)為754,這樣可以避免一些權(quán)限問題而造成的麻煩!

由于用的是Ubuntu Server系統(tǒng),上面還配置了MongoDB的啟動(dòng)服務(wù),而且在其init.d的腳本中加入了以下的語句:

# Required-Start:  $all
# Required-Stop:   $all

所以在以后自己添加的時(shí)候系統(tǒng)會(huì)提示錯(cuò)誤,所以在Node項(xiàng)目的啟動(dòng)腳本里我加了前面一串的說明注釋,以便Ubuntu Server系統(tǒng)進(jìn)行設(shè)置,如果在CentOS上,應(yīng)該不會(huì)出現(xiàn)類似的問題,這點(diǎn)要特別注意!

即以下的說明信息:

### BEGIN INIT INFO
# Provides:     xiyoulib
# Required-Start:  $all
# Required-Stop:   $all
# Default-Start:   2 3 4 5
# Default-Stop:   0 1 6
# Short-Description: Start daemon at boot time
# Description:    Enable service provided by daemon.
### END INIT INFO

腳本編輯完成后使用chkconfig --list指令查看一下自己添加的服務(wù)是否生效,即3和5全部要為on才可以實(shí)現(xiàn)開機(jī)自啟動(dòng)。

如果3和5沒有被置為on,那么請(qǐng)執(zhí)行chkconfig --level 35 [你的服務(wù)名] on即可,Ubuntu Server可能會(huì)報(bào)一些warning,但是只要能將所需設(shè)置的服務(wù)的3、5變?yōu)閛n,其他的錯(cuò)誤可以忽略(我感覺這是系統(tǒng)自己的事)。

設(shè)置完成后即可實(shí)現(xiàn)Node項(xiàng)目在Linux上的自啟動(dòng),可以shutdown -r now試一下能否自啟,啟動(dòng)好以后直接去訪問一下你設(shè)定的端口號(hào)、虛擬目錄神馬的,如果出來想要的就大功告成了!

但是如果不對(duì),就好好檢查一些腳本,然后根據(jù)報(bào)錯(cuò)進(jìn)行相關(guān)修改,畢竟我也是試出來的嘛!

相關(guān)文章

  • 淺談Node.js:理解stream

    淺談Node.js:理解stream

    本篇文章主要介紹了Node.js:stream,Stream在node.js中是一個(gè)抽象的接口,具有一定的參考價(jià)值,有需要的可以了解一下。
    2016-12-12
  • Node.js使用Koa搭建 基礎(chǔ)項(xiàng)目

    Node.js使用Koa搭建 基礎(chǔ)項(xiàng)目

    時(shí)下前端工程師有很多人比較關(guān)注NodeJs以及express 框架或者Koa 框架之類的新技術(shù)。難得我最近閑時(shí)較多,利用一下舊歷新年尚未正式到來的這片閑暇,也來涉足其中,一窺其中奧妙。
    2018-01-01
  • Node.js入門教程:在windows和Linux上安裝配置Node.js圖文教程

    Node.js入門教程:在windows和Linux上安裝配置Node.js圖文教程

    這篇文章主要介紹了Node.js入門教程:在windows和Linux上安裝配置Node.js的方法,本文圖文并茂,步驟明細(xì),是學(xué)習(xí)安裝node.js的絕佳教程,需要的朋友可以參考下
    2014-08-08
  • Node對(duì)CommonJS的模塊規(guī)范

    Node對(duì)CommonJS的模塊規(guī)范

    這篇文章主要介紹了Node對(duì)CommonJS的模塊規(guī)范,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • node.js通過axios實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求的方法

    node.js通過axios實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求的方法

    下面小編就為大家分享一篇node.js通過axios實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 了不起的node.js讀書筆記之mongodb數(shù)據(jù)庫交互

    了不起的node.js讀書筆記之mongodb數(shù)據(jù)庫交互

    這篇文章主要介紹了了不起的node.js讀書筆記之mongodb數(shù)據(jù)庫交互,需要的朋友可以參考下
    2014-12-12
  • Node中文件斷點(diǎn)續(xù)傳原理和方法總結(jié)

    Node中文件斷點(diǎn)續(xù)傳原理和方法總結(jié)

    在之前做過一個(gè)小項(xiàng)目,涉及到了文件上傳,在大文件上面使用了斷點(diǎn)續(xù)傳,降低了服務(wù)器方面的壓力,現(xiàn)在小編把Node中文件斷點(diǎn)續(xù)傳原理和方法總結(jié)分享給大家,感興趣的朋友一起看看吧
    2022-01-01
  • Node.js結(jié)合FFmpeg構(gòu)建自動(dòng)化腳本實(shí)現(xiàn)轉(zhuǎn)碼視頻

    Node.js結(jié)合FFmpeg構(gòu)建自動(dòng)化腳本實(shí)現(xiàn)轉(zhuǎn)碼視頻

    傳統(tǒng)的視頻轉(zhuǎn)碼中,很常用的工具是FFmpeg,本文主要介紹了Node.js結(jié)合FFmpeg構(gòu)建自動(dòng)化腳本實(shí)現(xiàn)轉(zhuǎn)碼視頻,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • nodejs如何獲取當(dāng)前連接的網(wǎng)絡(luò)ip

    nodejs如何獲取當(dāng)前連接的網(wǎng)絡(luò)ip

    這篇文章主要介紹了nodejs如何獲取當(dāng)前連接的網(wǎng)絡(luò)ip問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 深入理解Node.js的HTTP模塊

    深入理解Node.js的HTTP模塊

    最近在工作中接觸到了Node.js標(biāo)準(zhǔn)庫提供了http模塊,所以這篇文章想總結(jié)下Node.js的HTTP模塊,方便大家和自己以后使用的時(shí)候參考借鑒。有需要的朋友們下面來一起看看吧。
    2016-10-10

最新評(píng)論