背景:比如我們啟動一個node服務(wù)暖庄,當我們將終端窗口關(guān)閉之后聊替,就無法再訪問網(wǎng)址了,這個時候我們就需要借助pm2來實現(xiàn)培廓,關(guān)閉終端窗口后仍然可以訪問項目惹悄,需要具有后臺運行和自動重啟,這兩個能力肩钠。
1. 全局安裝pm2
npm i pm2 -g
2. 啟動項目
// 當前文件夾下運行
pm2 start app.js --name web
終端關(guān)閉之后泣港,在瀏覽器中依舊可以訪問我們網(wǎng)址。
3. 我們還可以再次打開終端窗口价匠,進行其他指令操作
3.1. 查看當前電腦運行了哪些項目
pm2 ls
3.2. 停止項目
// pm2 stop name 使用項目名稱
pm2 stop web
// 停止所有應(yīng)用
pm2 stop all
// pm2 stop id 或者使用項目id 更加簡短方便
pm2 stop 0
3.3. 重啟項目
// pm2 restart name 使用項目名稱
pm2 restart web
// 重啟所有進程
pm2 restart all
// pm2 restart id 或者使用項目id 更加簡短方便
pm2 restart 0
3.4. 刪除項目
// pm2 delete name 使用項目名稱
pm2 delete web
// pm2 delete id 或者使用項目id 更加簡短方便
pm2 delete 0
3.5. 殺掉pm2管理的所有進程
pm2 kill
3.6. 啟動靜態(tài)服務(wù)器,將目錄dist作為靜態(tài)服務(wù)器根目錄当纱,端口為8080
pm2 serve ./dist 8080
3.7. 設(shè)置pm2開機自啟
開啟啟動設(shè)置,此處是CentOS系統(tǒng)踩窖,其他系統(tǒng)替換最后一個選項(可選項:ubuntu, centos, redhat, gentoo, systemd, darwin, amazon)
pm2 startup centos
然后按照提示需要輸入的命令進行輸入
最后保存設(shè)置
pm2 save
3.8. pm2 以 windows 服務(wù)運行
兩種方案:pm2-windows-startup和pm2-windows-service
pm2-windows-startup 在 Windows Server 2012 上可行坡氯,故選擇 pm2-windows-startup 作為解決 Node.js 應(yīng)用開機自啟動的方案。
// 全局安裝pm2
npm i pm2 -g
// 全局安裝pm2 Win自啟包:pm2-windows-startup
npm install pm2-windows-startup -g
// 安裝配置包:pm2-startup
pm2-startup install
// 推薦使用pm2配置文件啟動項目洋腮,關(guān)于pm2配置文件可以參考如下配置文件pm2.config.json
{
"apps":{
"name":"myproject-web", // 項目的別名
"script":"index.js", //需要啟動程序的入口文件
"watch":"true", // 開啟文件變化監(jiān)聽
"ignore_watch":[ // 忽略文件變化監(jiān)聽文件
"node_modules",
"logs"
],
"error_file":"logs/error.log", //配置錯誤日志輸出文件地址
"out_file":"logs/consoles.log", //配置打印日志輸出文件地址
"log_date_format":"YYYY-MM-DD HH:mm:ss", //配置日志日期格式
"instances":2 //配置項目所占用的核數(shù)箫柳,小于等于服務(wù)器的總核數(shù)量
}
}
// 啟動項目:使用pm2啟動項目,提前將命令行切換到項目根文件夾下后執(zhí)行如下命令(如果不切換到項目文件下可以在啟動時將項目路徑加入啟動:pm2 start 路徑\index.js):
pm2 start pm2.config.json ,如果沒有配置pm2配置文件啥供,那么可以直接通過:pm2 index.js 或 pm2 app.js啟動
// 將此項目保存起來悯恍,開機后才會自動重啟,如:
pm2 save
// 重啟服務(wù)器滤灯,可以正常訪問應(yīng)用坪稽,當然我們通常使用命令行下鍵入命令:pm2 list查看當前啟動的項目,這里命令行路徑?jīng)]有要求鳞骤,如:
pm2 list