pm2
PM2 是 Node.js 應(yīng)用程序的生產(chǎn)進(jìn)程管理器,具有內(nèi)置的負(fù)載均衡器燕耿。PM2 可以使應(yīng)用程序保持持久運(yùn)行中符,無需宕機(jī)即可重新裝入誉帅,并可以簡化常見的系統(tǒng)管理任務(wù)。PM2 還使您可以管理應(yīng)用程序記錄档插、監(jiān)控和集群。
官方文檔
安裝 PM2
$ npm install pm2 -g
啟動
$ pm2 start app.js
最優(yōu)實踐
$ pm2 start api.js -i max --env production
- 打開負(fù)載均衡
$ pm2 start api.js -i <processes>
<processes>
可以是 max
/ -1
(所有cpu減 1) 或者指定cup的數(shù)量
- 文件配置
$ pm2 init // 生成配置文件
$ pm2 start app --env production // 以產(chǎn)品模式運(yùn)行
常用命令
$ pm2 stop <app_name|id|'all'|json_conf>
$ pm2 restart <app_name|id|'all'|json_conf>
$ pm2 delete <app_name|id|'all'|json_conf>
Forever
Forever 是一種簡單的命令行界面工具亚再,用于確保特定腳本持續(xù)(永久)運(yùn)行郭膛。Forever 的簡單界面使其成為運(yùn)行 Node.js 應(yīng)用程序和腳本的較小部署的理想選擇氛悬。
有關(guān)更多信息则剃,請參閱 https://github.com/foreverjs/forever如捅。
安裝
$ [sudo] npm install forever -g
基本使用
要啟動腳本棍现,請使用 forever start
命令并指定腳本的路徑:
$ forever start ./bin/www //啟動exress服務(wù)器
or
$ forever start script.js //啟動特定文件
此命令(在后臺)以守護(hù)程序方式運(yùn)行腳本。
要運(yùn)行腳本以便其附加到終端伪朽,請省略 start
:
$ forever script.js
使用日志記錄選項 -l
轴咱、-o
和 -e
(如此示例中所示)記錄來自 Forever 工具和腳本的輸出,是很好的構(gòu)想:
$ forever start -l forever.log -o out.log -e err.log script.js
要查看 Forever 啟動的腳本的列表:
$ forever list
要停止由 Forever 啟動的腳本朴肺,請使用 forever stop
命令并指定進(jìn)程索引(如 forever list
命令所列出)。
$ forever stop 1
或者戈稿,指定文件的路徑:
$ forever stop script.js
要停止 Forever 啟動的所有腳本:
$ forever stopall
Forever API
actions:
start Start SCRIPT as a daemon
stop Stop the daemon SCRIPT by Id|Uid|Pid|Index|Script
stopall Stop all running forever scripts
restart Restart the daemon SCRIPT
restartall Restart all running forever scripts
list List all running forever scripts
config Lists all forever user configuration
set <key> <val> Sets the specified forever config <key>
clear <key> Clears the specified forever config <key>
logs Lists log files for all forever processes
logs <script|index> Tails the logs for <script|index>
columns add <col> Adds the specified column to the output in `forever list`
columns rm <col> Removed the specified column from the output in `forever list`
columns set <cols> Set all columns for the output in `forever list`
cleanlogs [CAREFUL] Deletes all historical forever log files