1. 程式人生 > >利用forever在Linux上實現Node.js專案自啟動

利用forever在Linux上實現Node.js專案自啟動

在一臺計算機上手動跑Node專案簡單,node xx.js就搞定了,想讓Node專案後臺執行,雖然不能直接用node命令搞定,但是在安裝了forever這個包以後,還是很輕鬆的。不過要是在遠端伺服器上構建Node專案,如果沒法自啟動,一旦伺服器重啟,那麼專案必須通過管理員遠端手動開啟才可以執行。

那麼能否利用forever加啟動指令碼方式解決上述問題呢?答案當然是肯定的,只不過有點麻煩,而且forever官方缺少詳細的配置文件。我在配置的時候也走了一些彎路,下面詳細來說。

注:本文的實驗環境是Ubuntu Server 12.04 LTS x86_64,在CentOS上的配置更簡單一些

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

前提是要先把forever好,方法很簡單,執行如下命令就好:

npm install forever -g

安裝完成後,用一個簡單的Node程式測試一下:

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

只要不提示error,就表明forever是可以用的,也就是說用forever來後臺開啟一個Node專案的基本條件已經具備,剩下的就是來編寫一個啟動指令碼了。

指令碼的基本內容如下,感謝原作者的辛勤勞動:

#!/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專案的啟動指令碼檔案
LOG=/node.js/log/log  #可選,日誌檔案目錄
PID=/node.js/pid  #必填內容,用於記錄forever的程序號

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

#往下的內容就不用修改了

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專案單獨在根目錄下建立一個目錄,如/node.js,然後許可權設為754,這樣可以避免一些許可權問題而造成的麻煩!

由於用的是Ubuntu Server系統,上面還配置了MongoDB的啟動服務,而且在其init.d的指令碼中加入了以下的語句:

# Required-Start:    $all
# Required-Stop:     $all
所以在以後自己新增的時候系統會提示錯誤,所以在Node專案的啟動腳本里我加了前面一串的說明註釋,以便Ubuntu Server系統進行設定,如果在CentOS上,應該不會出現類似的問題,這點要特別注意!

即以下的說明資訊:

### 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指令檢視一下自己新增的服務是否生效,即3和5全部要為on才可以實現開機自啟動。

如果3和5沒有被置為on,那麼請執行chkconfig --level 35 [你的服務名] on即可,Ubuntu Server可能會報一些warning,但是隻要能將所需設定的服務的3、5變為on,其他的錯誤可以忽略(我感覺這是系統自己的事)。

設定完成後即可實現Node專案在Linux上的自啟動,可以shutdown -r now試一下能否自啟,啟動好以後直接去訪問一下你設定的埠號、虛擬目錄神馬的,如果出來想要的就大功告成了!

但是如果不對,就好好檢查一些指令碼,然後根據報錯進行相關修改,畢竟我也是試出來的嘛!

相關推薦

利用forever在Linux實現Node.js專案啟動

在一臺計算機上手動跑Node專案簡單,node xx.js就搞定了,想讓Node專案後臺執行,雖然不能直接用node命令搞定,但是在安裝了forever這個包以後,還是很輕鬆的。不過要是在遠端伺服器上構建Node專案,如果沒法自啟動,一旦伺服器重啟,那麼專案必須通過管理員遠

(轉)Window 安裝Node.js

自動 pda mysql setup back python .html 安裝步驟 修改 window上安裝nodejs非常的簡單,next,next就行了,環境變量都是自動配置,不明白為毛java不這樣 Window 上安裝Node.js http://www.runoo

最簡單的方式在linux升級node.js版本

strong 解決方法 cal 穩定版 信息 解決 style alt 刪除 node的升級頻率太高,n模塊來升級是最方便的,網上看了很多資料介紹使用n模塊,但是安裝n模塊之後卻經常找不到這個命令 很多同學安裝之後直接去使用n會發現命令不存在,就停留在這一步無法前進了。

如何在Ubuntu更新Node.js

col ubunt span bash clas nodejs 最新 更新 code 自己系統上一直用的1.0版本的,ES6都用不了,想要更新直接apt又不行。   如果想安裝最新的 6.x 版本 只需要 1 #Using Ubuntu 2 curl -sL https:

ubuntu 安裝node.js 的簡單方法

config targe int ubun span 命令 ins x64 com 一、安裝 1.$ sudo apt-get install nodejs2.$ sudo apt-get install npm二、升級 1.升級npm命令如下: $ sudo np

Deepin 15.5安裝 Node.js

nbsp apt-get con spa linux ubunt 步驟 lin linux系統 Node.js 源碼安裝 以下部分我們將介紹在Ubuntu Linux下安裝 Node.js 。 其他的Linux系統,如Centos等類似如下安裝步驟。 在 Github

在 Centos 安裝 node.js

path node.js entos 移動 文件 class 測試 AR local 請自行切換 root 用戶進行操作 1. 下載 node.js 的二進制包 https://nodejs.org/en/download/ http://mirrors.ustc.edu.

模仿WC.exe的功能實現--node.js

left name error onos 編碼 display 表達 字母 info Github項目地址:https://github.com/102derLinmenmin/myWc WC 項目要求 wc.exe 是一個常見的工具,它能統計文本文件的字符數、單詞數和行數

linux安裝node.js

前段時間偶然對node.js感興趣了,決定研究一下怎麼用,但要用之前首先要裝node.js的環境。 由於我最常用的是CentOS 64的系統,下面就簡單地介紹一下怎麼在CentOS下安裝node.js吧。 第一步:先檢視系統的核心版本       &nb

Node.js專案

這裡mongose語言可以參考https://www.jianshu.com/p/2f54b90efe15 首先配置好入口檔案app.js app.js中比較重要的兩個模組是express  swig(用於解析模板內容) 檔案解析模板swig的配置

Ubuntu 18.04安裝 node.js and npm and vuejs project

soooooooooooooooooooooooooooooooooooooooooooooooooo easy  ! sudo apt install nodejs sudo apt install npm 確認安裝版本 : $ nodejs --ve

如何在Debian 9安裝Node.js

Install Node.js On Debian 在本教程中,我們將介紹如何在Debian 9系統上安裝Node.js和npm。 Node.js是一個開源的跨平臺JavaScript執行時環境,構建於Chrome的JavaScript引擎之上,允許伺服器端執行JavaScript程

如何在Mac安裝Node.js和NPM

原作者:Dave McFarland  翻譯轉載:https://blog.teamtreehouse.com/install-node-js-npm-mac   如何在Mac上安裝Node.js和NPM   JavaScript是世界上最流行

阿里雲ECS伺服器部署Node.js專案詳細教程及多網站部署

本文詳細介紹如何部署NodeJS專案到阿里雲ECS上,以及本人在部署過程中所遇到的問題、坑點和解決辦法,可以說是全網最全最詳細的教程了。同時講解了如何申請阿里雲免費SSL證書,以及一臺ECS伺服器配置多網站的Nginx配置方法等。 作者:Kovli 1. 雲伺

Deepin 安裝 node.js

步驟詳解: 到node官網上下載相應的版本 具體下哪個,看你的電腦的位數了。 將下載下來的壓縮包解壓到期望的位置。 建立軟連線 sudo ln -s /usr/software/node/npm /usr/local/node/npm sud

中小型的 Node.js 專案目錄

build 構建指令碼 dist 編譯出來的釋出版 docs 文件 examples 示例檔案 src 原始碼 test 測試指令碼 .babelrc Babel 交叉編譯的配置 .eslintrc ESLint 測試配置&n

node.js專案框架搭建

一、使用Node搭建伺服器專案 1.//全域性安裝 express sudo npm install -g express-generator 2.//使用ejs建立工程 express -e NodeTest 3.//進入工程 cd NodeTest 4.//下載專案所需

Node.js專案的package.json配置檔案中的devdependencies 和 dependencies的區別

1、dependencies和devDependencies 具體程式碼如下 "name": "webpack-react-express", "version": "0.2.0", "private": true, "dependencies": {

利用@media screen實現網頁佈局的適應

優點:無需外掛和手機主題,對移動裝置友好,能夠適應各種視窗大小。只需在CSS中新增@media screen屬性,根據瀏覽器寬度判斷並輸出不同的長寬值 準備工作1:設定Meta標籤 首先我們在使用Media的時候需要先設定下面這段程式碼,來相容移動裝置的展示效果:

利用Dockerfile製作node+nginx應用啟動映象

利用Dockerfile製作node+nginx應用自啟動映象。 基礎映象: 在寫Dockerfile之前首先需要建立一個完整的裝好node環境與應用,以及nginx代理的基礎映象。 編輯Dockfile:   #FROM表明所基於的映象 FROM testqhf #作者資