使用pm2來保證Spring Boot應用穩定運行

Spring Boot開發web應用就像開發普通的java程序通常簡潔,由於其內嵌了web容易,啓動的時候只須要一條命令java -jar server.jar便可,很是方便。
可是由此而來的問題是萬一應用掛了怎麼辦?php

別擔憂,有pm2進程管理工具能夠幫到你。html

PM2簡介

pm2原先是nodejs應用的進程管理工具,不過其良好的設計以及擴展性能夠手動執行執行進程。java

PM2安裝

1.安裝NodeJsnode

npm install pm2 -g

  

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,內容以下:web

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

說明以下:spring

  • name 進程名稱(顯示在pm2 list命令中)
  • script 執行進程名稱,若是須要執行PHP腳本則填寫php解釋器的路徑,本文爲java
  • args 傳給執行進程的參數,多個參數以數組單元分割
  • exec_interpreter NodeJs解析器,本文不適用
  • exec_mode 執行模式[cluster|fork]這個針對NodeJs應用的配置,非NodeJs應用統一fork

配置文件完成後,使用npm

pm2 start pm2.json

  便可看到應用被啓動json

日誌管理

日誌路徑在~/.pm2/logsstdoutstderr被分開存放,程序中的全部stdoutstderr都被收集方便查錯。api

cat project-cogrowth-api.json數組

{
    "name": "cogrowth-api",
    "script": "java",
    "args": [
        "-Xms64m",
        "-Xmx512m",
        "-Dspring.profiles.active=pub",
        "-jar",
        "cogrowth-api-1.0.jar",
    ],
    "exec_interpreter": "",
    "exec_mode": "fork"
}
相關文章
相關標籤/搜索