pm2 監(jiān)控spring boot 運行,開啟自啟動

安裝Nodejs
1、到官網(wǎng)下載最新穩(wěn)定版nodejs

根據(jù)自己機器系統(tǒng)環(huán)境下載對應的版本,我使用的64位的CentOS系統(tǒng),因此我下載了node-v8.10.0-linux-x64.tar.xz這個包。

image

如果你想下載其他版本,訪問這里:https://nodejs.org/dist/
2、解壓

解壓下載的壓縮包:node-v8.10.0-linux-x64.tar.xz,需要先使用xz命令,再解壓tar包。解壓完成后,我們將nodejs移動到安裝目錄下,由于該版本已經(jīng)編譯好,因此無需再編譯即可使用。

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服務器則直接執(zhí)行命令

yum install xz

就可以,其他類型請網(wǎng)上查詢
3、設置環(huán)境變量

我們需要設置環(huán)境變量以便可以直接使用node命令。使用命令vim /etc/profile打開文件,在文件末尾加上以下兩行,并保存。

export NODE_HOME=/usr/local/nodejs
export PATH=$NODE_HOME/bin:$PATH

保存好后,執(zhí)行以下命令讓配置立即生效:

source /etc/profile

4、驗證

依次輸入node -v和npm -v命令:

v8.10.0
[root@localhost ~]# npm -v
5.6.0

可以看到node的版本是v8.10.0,而且自帶安裝好了npm,版本是5.6.0。

5、安裝cnpm鏡像

由于眾所周知的原因,npm命令安裝依賴時會非常慢,因此我們使用淘寶鏡像加速安裝依賴,安裝好后,就可以使用cnpm命令來安裝常用的依賴。

npm install -g cnpm --registry=https://registry.npm.taobao.org

什么是PM2
PM2是node進程管理工具,可以利用它來簡化很多node應用管理的繁瑣任務,如性能監(jiān)控、自動重啟、負載均衡等,而且使用非常簡單。
安裝PM2
使用cnpm命令安裝全局的pm2。
使用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管理的程序自動運行
Java程序處理
在jar的同級目錄新建應用啟動配置文件,如pm2.json,內容如下:

{
    "name": "my-server",
    "script": "/usr/java/jdk1.8.0_201/bin/java",
    "args": [
        "-jar",
        "server.jar"
    ],
    "exec_interpreter": "",
    "exec_mode": "fork"
}

說明如下:

name 進程名稱(顯示在pm2 list命令中)
script 執(zhí)行進程名稱,如果需要執(zhí)行PHP腳本則填寫php解釋器的路徑,本文為java
args 傳給執(zhí)行進程的參數(shù),多個參數(shù)以數(shù)組單元分割
exec_interpreter NodeJs解析器,本文不適用
exec_mode 執(zhí)行模式[cluster|fork]這個針對NodeJs應用的配置,非NodeJs應用統(tǒng)一fork
配置文件完成后,使用

1
pm2 start pm2.json
即可看到應用被啟動
我們還可以使用命令pm2 list查看當前node服務進程。

image

查看進程日志
pm2 log 0


image.png

查看進程詳情
pm2 describe <id|app_name>
進程監(jiān)控
pm2 monit


image.png

接下來我們要做的是把pm2加入到開機啟動中去,以便于pm2會隨著服務器開機自啟動,運行以下命令:

pm2 startup
pm2 save

我們還可以使用pm2 show hello查看名稱為“hello”的node進程詳情。

更多有關PM2的使用說明請參考PM2項目github上的地址:https://github.com/Unitech/pm2。
幾點經(jīng)驗:

通過 json 啟動之后, 就可以直接使用 json 文件中的名稱來對項目進行控制, 如 pm2 stop name;
每次重新打包之后, 使用 pm2 restart name 就可以更新項目;
如果修改了 json 文件, 就無法通過 restart 更新項目了, 必須要先 pm2 del name 然后再重新 pm2 start xx.json.

{
    "name": "fz",
    "script": "/usr/bin/java",
    "args": [
        "-jar",
        "/home/imzhizi/tcm-fz/target/fz.jar",
        "--spring.profiles.active=prod"
    ],
    "exec_interpreter": "",
    "exec_mode": "fork",
    "error_file" : "/home/imzhizi/log/fz-err.log",
    "out_file"   : "/home/imzhizi/log/fz-out.log"
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容