利用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 #作者資