使用forever管理nodejs應(yīng)用教程
何為forever
forever可以看做是一個(gè)nodejs的守護(hù)進(jìn)程,能夠啟動(dòng),停止,重啟我們的app應(yīng)用。
官方的說(shuō)明是說(shuō):
// 一個(gè)用來(lái)持續(xù)(或者說(shuō)永遠(yuǎn))運(yùn)行一個(gè)給定腳本的簡(jiǎn)單的命令行工具
Github地址:https://github.com/nodejitsu/forever
forever用途
forever的用途就是幫我們更好的管理我們node App服務(wù),本質(zhì)上就是在forever進(jìn)程之下,創(chuàng)建一個(gè)node app的子進(jìn)程。
比如,你有一個(gè)基于express的或者其他的一些個(gè)應(yīng)用那么,它將會(huì)很方便你更新和操作你的服務(wù),并且保證你服務(wù)能持續(xù)運(yùn)行。
更好的一點(diǎn)就是每次更改文件,它都可以幫你自動(dòng)重啟服務(wù)而不需要手動(dòng)重啟。
安裝forever
// 記得加-g,forever要求安裝到全局環(huán)境下
sudo npm install forever -g
forever使用說(shuō)明
啟動(dòng)相關(guān)
// 1. 簡(jiǎn)單的啟動(dòng)
forever start app.js
// 2. 指定forever信息輸出文件,當(dāng)然,默認(rèn)它會(huì)放到~/.forever/forever.log
forever start -l forever.log app.js
// 3. 指定app.js中的日志信息和錯(cuò)誤日志輸出文件,
// -o 就是console.log輸出的信息,-e 就是console.error輸出的信息
forever start -o out.log -e err.log app.js
// 4. 追加日志,forever默認(rèn)是不能覆蓋上次的啟動(dòng)日志,
// 所以如果第二次啟動(dòng)不加-a,則會(huì)不讓運(yùn)行
forever start -l forever.log -a app.js
// 5. 監(jiān)聽(tīng)當(dāng)前文件夾下的所有文件改動(dòng)
forever start -w app.js
文件改動(dòng)監(jiān)聽(tīng)并自動(dòng)重啟
// 1. 監(jiān)聽(tīng)當(dāng)前文件夾下的所有文件改動(dòng)(不太建議這樣)
forever start -w app.js
顯示所有運(yùn)行的服務(wù)
停止操作
forever stopall
// 2. 停止其中一個(gè)node App
forever stop app.js
// 當(dāng)然還可以這樣
// forever list 找到對(duì)應(yīng)的id,然后:
forever stop [id]
重啟操作
重啟操作跟停止操作保持一致。
forever restartall
開發(fā)和線上建議配置
// 開發(fā)環(huán)境下
NODE_ENV=development forever start -l forever.log -e err.log -a app.js
// 線上環(huán)境下
NODE_ENV=production forever start -l ~/.forever/forever.log -e ~/.forever/err.log -w -a app.js
上面加上NODE_ENV為了讓app.js辨認(rèn)當(dāng)前是什么環(huán)境用的。不加它可能就不知道哦?
一些注意點(diǎn)
有可能你需要使用unix下的crontab(定時(shí)任務(wù))
這個(gè)時(shí)候需要注意配置好環(huán)境變量。
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
相關(guān)文章
node.js中的path.extname方法使用說(shuō)明
這篇文章主要介紹了node.js中的path.extname方法使用說(shuō)明,本文介紹了path.extname的方法說(shuō)明、語(yǔ)法、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
輕松創(chuàng)建nodejs服務(wù)器(3):代碼模塊化
這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(3):代碼模塊化,本文是對(duì)第一節(jié)的例子作了封裝,需要的朋友可以參考下2014-12-12
nodejs實(shí)現(xiàn)一個(gè)自己的腳手架工具
本文介紹了如何以Node.js為基礎(chǔ),自行開發(fā)一個(gè)腳手架工具,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
詳解如何優(yōu)雅在webpack項(xiàng)目實(shí)現(xiàn)mock服務(wù)器
這篇文章主要為大家介紹了詳解如何優(yōu)雅在webpack項(xiàng)目實(shí)現(xiàn)mock服務(wù)器,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
node.js中實(shí)現(xiàn)雙重身份驗(yàn)證機(jī)制的方法詳解
雙重身份驗(yàn)證(Two-factor?authentication)是一種安全機(jī)制,它要求用戶提供兩種不同的身份驗(yàn)證因素來(lái)訪問(wèn)他們的帳戶,下面我們就來(lái)學(xué)習(xí)一下如何使用speakeasy在nodejs中實(shí)現(xiàn)雙重身份驗(yàn)證吧2023-10-10
教你用Node.js與Express建立一個(gè)GraphQL服務(wù)器
GraphQL是一種通過(guò)強(qiáng)類型查詢語(yǔ)言構(gòu)建api的新方法,下面這篇文章主要給大家介紹了關(guān)于用Node.js與Express建立一個(gè)GraphQL服務(wù)器的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12
從reflect?metadata理解Nest實(shí)現(xiàn)原理
這篇文章主要為大家介紹了從reflect?metadata理解Nest實(shí)現(xiàn)原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

