PM2配置文件的使用


一、前言

PM2支持配置文件方式進行應用服務設置,文件支持的配置格式為JavascriptJSONYAML。以下主要講述JavascriptJSON這2種格式;

二、配置文件

1.Javascript格式

輸入以下命令可以生產配置文件模板:

pm2 init

pm2 ecosystem

生成是ecosystem.config.js如下:

module.exports = {
  apps : [{
    name: 'API',
    script: 'app.js',
    args: 'one two',
    instances: 1,
    autorestart: true,
    watch: false,
    max_memory_restart: '1G',
    env: {
      NODE_ENV: 'development'
    },
    env_production: {
      NODE_ENV: 'production'
    }
  }],

  deploy : {
    production : {
      user : 'node',
      host : '212.83.163.1',
      ref  : 'origin/master',
      repo : 'git@github.com:repo.git',
      path : '/var/www/production',
      'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env production'
    }
  }
};

可以根據需要修改配置內容,啟動命令:

pm2 start ecosystem.config.js

請注意,使用Javascript配置文件要求文件名結尾為 .config.js

2.json格式

例如命名為config.json

{
      "apps": [{
        "name": "test",  //名稱
        "script": "server.js", //程序入口
        "cwd": "./",           //根目錄
        "instances": 1,
        "error_file":"./logs/error.log",//錯誤輸出日志
        "out_file":"./logs/out.log",  //日志
        "log_date_format":"YYYY-MM-DD HH:mm Z" //日期格式
        }]
    }

啟動命令:

pm2 start config.json

也可以把命令寫在package.json里。如下:

通過npm run pm2來啟動

可以根據需要設置任意多個JSON應用程序聲明。

{
  "apps": [
      {
      "name": "testOne",
      "script": " testOne/server.js",
      "instances": 1,
      "log_date_format": "YYYY-MM-DD HH:mm Z",
      "max_memory_restart": "500M"
    },
    {
      "name": "testTwo",
      "script": " testTwo/server.js",
      "instances": 1,
      "log_date_format": "YYYY-MM-DD HH:mm Z",
      "max_memory_restart": "500M"
    }
  ]
}
3. 常用配置項說明:

apps: json結構,apps是一個數組,每一個數組成員就是對應一個pm2中運行的應用;

name:應用程序名稱;

cwd:應用程序所在的目錄;

script:應用程序的腳本路徑;

log_date_format: 指定日志日期格式,如YYYY-MM-DD HH:mm:ss;

error_file:自定義應用程序的錯誤日志文件,代碼錯誤可在此文件查找;

out_file:自定義應用程序日志文件,如應用打印大量的標准輸出,會導致pm2日志過大;

pid_file:自定義應用程序的pid文件;

interpreter:指定的腳本解釋器;

interpreter_args:傳遞給解釋器的參數;

instances: 應用啟動實例個數,僅在cluster模式有效,默認為fork;

min_uptime:最小運行時間,這里設置的是60s即如果應用程序在60s內退出,pm2會認為程序異常退出,此時觸發重啟max_restarts設置數量;

max_restarts:設置應用程序異常退出重啟的次數,默認15次(從0開始計數);

autorestart :默認為true, 發生異常的情況下自動重啟;

cron_restart:定時啟動,解決重啟能解決的問題;

max_memory_restart:最大內存限制數,超出自動重啟;

watch:是否啟用監控模式,默認是false。如果設置成true,當應用程序變動時,pm2會自動重載。這里也可以設置你要監控的文件。

ignore_watch:忽略監聽的文件夾,支持正則表達式;

merge_logs: 設置追加日志而不是新建日志;

exec_interpreter:應用程序的腳本類型,默認是nodejs;

exec_mode:應用程序啟動模式,支持fork和cluster模式,默認是fork;

autorestart:啟用/禁用應用程序崩潰或退出時自動重啟;

vizion:啟用/禁用vizion特性(版本控制);

env:環境變量,object類型;

force:默認false,如果true,可以重復啟動一個腳本。pm2不建議這么做;

restart_delay:異常重啟情況下,延時重啟時間;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM