国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 16:09:08
字體:
來源:轉載
供稿:網友
在一臺計算機上手動跑Node項目簡單,node xx.js就搞定了,想讓Node項目后臺運行,雖然不能直接用node命令搞定,但是在安裝了forever這個包以后,還是很輕松的。不過要是在遠程服務器上構建Node項目,如果沒法自啟動,一旦服務器重啟,那就麻煩了。

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

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

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

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

npm install forever -g

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

forever start test.jsforever stop test.jsforever 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.jsDEAMON=/node.js/XiyouLibNodeExpress/bin/www #這里需要填寫你自己的Node項目的啟動腳本文件LOG=/node.js/log/log #可選,日志文件目錄PID=/node.js/pid #必填內容,用于記錄forever的進程號export PATH=$PATH:/usr/local/bin #在這里指定一下Node的可執(zhí)行程序安裝目錄,我的是/usr/local/binexport NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules #這里是Node類庫的路徑#往下的內容就不用修改了node=nodeforever=forevercase "$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系統(tǒng),上面還配置了MongoDB的啟動服務,而且在其init.d的腳本中加入了以下的語句:

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

所以在以后自己添加的時候系統(tǒng)會提示錯誤,所以在Node項目的啟動腳本里我加了前面一串的說明注釋,以便Ubuntu Server系統(tǒng)進行設置,如果在CentOS上,應該不會出現(xià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指令查看一下自己添加的服務是否生效,即3和5全部要為on才可以實現(xiàn)開機自啟動。

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

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 轮台县| 噶尔县| 宝清县| 芜湖市| 泸州市| 崇文区| 临猗县| 永新县| 丹巴县| 翼城县| 浦江县| 镇平县| 亳州市| 罗江县| 赤峰市| 林西县| 营山县| 肇东市| 穆棱市| 华阴市| 阆中市| 甘孜| 隆子县| 新余市| 色达县| 新平| 兴和县| 沾化县| 西乡县| 襄汾县| 商洛市| 邵东县| 汕头市| 营山县| 武夷山市| 克东县| 黔南| 阿尔山市| 吴桥县| 霍林郭勒市| 伊通|