pm2好用的node進程管理工具,監控進程開機自啟動,java進程配置,安裝Nodejs環境
什么是PM2
PM2是node進程管理工具,可以利用它來簡化很多node應用管理的繁瑣任務,如性能監控、自動重啟、負載均衡等,而且使用非常簡單。
pm2 是一個帶有負載均衡功能的Node應用的進程管理器.
當你要把你的獨立代碼利用全部的服務器上的所有CPU,並保證進程永遠都活着,0秒的重載, PM2是完美的。
常用命令:pm2 list 查看當前進程,pm2 monit 進程監控,pm2 startup pm2 save 開機自啟動設置。
注:java 生態自動化監控一般用:prometheus
安裝PM2
需要先安裝Nodejs環境(文章后面附有安裝教程),建議使用淘寶鏡像cnpm
使用cnpm命令安裝全局的pm2
cnpm install -g pm2
PM2基本命令
pm2 list 查看所有被PM2管理的進程列表
pm2 start xxx 啟動一個應用
pm2 stop xxx 停止一個應用
pm2 restart xxx 重啟一個應用
pm2 describe xxx 查看應用詳情
pm2 startup, pm2 save 兩條命令,用來保證服務器啟動時,pm2管理的程序自動運行
通過 pm2 start xx.json 啟動之后, 就可以直接使用 json 文件中的名稱來對項目進行控制, 如 pm2 stop name;
如果修改了 json 文件, 就無法通過 restart 更新項目了, 必須要先 pm2 del name 然后再重新 pm2 start xx.json
# pm2 restart xxx
=============
Java程序處理
在jar的同級目錄新建應用啟動配置文件,如myapi.json,內容如下:
{ "name": "my-server", "script": "/usr/java/jdk1.8.0_201/bin/java", "args": [ "-jar", "server.jar" ], "exec_interpreter": "", "exec_mode": "fork" }
多個jar包采用數組
[{ "name" : "zdz-admin", "script" : "java", "args" : "-jar -Xms256M -Xmx512M -DcfgPath=/web/conf/zdz-admin.conf /web/app/zdz-admin.jar", "exec_interpreter" : "none", "exec_mode" : "fork_mode" }, { "name" : "zdz-api", "script" : "java", "args" : "-jar -Xms1024M -Xmx2048M -DcfgPath=/web/conf/zdz-api.conf /web/app/zdz-api.jar", "exec_interpreter" : "none", "exec_mode" : "fork_mode" }]
參數說明:
name 進程名稱(顯示在pm2 list命令中)
script 執行進程名稱,如果需要執行PHP腳本則填寫php解釋器的路徑,本文為java
args 傳給執行進程的參數,多個參數以數組單元分割
exec_interpreter NodeJs解析器,java不適用
exec_mode 執行模式[cluster|fork]這個針對NodeJs應用的配置,非NodeJs應用統一fork
配置文件完成后,在json文件路徑下使用下面命令:
pm2 start myapi.json
即可看到應用被啟動
可以使用命令pm2 list查看當前node服務進程。
查看進程日志
pm2 log 0
查看進程詳情
pm2 describe <id|app_name>
進程監控
pm2 monit
把pm2加入到開機啟動中去,以便於pm2會隨着服務器開機自啟動,運行以下命令:
pm2 startup
pm2 save
使用pm2 show hello查看名稱為“hello”的node進程詳情。
使用說明請參考PM2項目github上的地址:https://github.com/Unitech/pm2。
------------
特別提醒:
1.通過 pm2 start xx.json 啟動之后, 就可以直接使用 json 文件中的名稱來對項目進行控制, 如 pm2 stop name;
2.每次重新打包之后, 使用 pm2 restart name 就可以更新項目;
3.如果修改了 json 文件, 就無法通過 restart 更新項目了, 必須要先 pm2 del name 然后再重新 pm2 start xx.json
{
"name": "zdz",
"script": "/usr/bin/java",
"args": [
"-jar",
"/home/zdzjar/zdz/target/zdz.jar",
"--spring.profiles.active=prod"
],
"exec_interpreter": "",
"exec_mode": "fork",
"error_file" : "/home/zdzjar/log/zdz-err.log",
"out_file" : "/home/zdzjar/log/zdz-out.log"
}
pm2 list 查看當前進程,pm2 startup pm2 save 開機自啟動設置。
=================
安裝Nodejs
1、到官網下載最新穩定版nodejs
如果你想下載其他版本,訪問這里:https://nodejs.org/dist/。
2、解壓安裝
xz -d node-v8.10.0-linux-x64.tar.xz
tar -xvf node-v8.10.0-linux-x64.tar
mv node-v8.10.0-linux-x64 /usr/local/nodejs
如果xz沒安裝,是centos服務器則直接執行命令
yum install xz
3、設置環境變量
使用命令vim /etc/profile打開文件,在文件末尾加上以下兩行,並保存。
export NODE_HOME=/usr/local/nodejs
export PATH=$NODE_HOME/bin:$PATH
保存好后,執行以下命令讓配置立即生效:
source /etc/profile
4、驗證
依次輸入node -v和npm -v命令
可以看到node和npm的版本
5、安裝cnpm鏡像
npm命令安裝依賴時會非常慢,使用淘寶鏡像加速安裝依賴,安裝好后,就可以使用cnpm命令來安裝常用的依賴。
npm install -g cnpm --registry=https://registry.npm.taobao.org
============