zoukankan      html  css  js  c++  java
  • 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:异常重启情况下,延时重启时间;

  • 相关阅读:
    APMServ5.2.6 无法启动Apache的一个问题
    【转】流媒体技术笔记(视频编码相关)
    用APMServ一键快速搭建Apache+PHP+MySQL+Nginx+Memcached+ASP运行平台
    java swing 基础
    python class 类
    python 经验
    python 导入(转)
    kernel ipv4/ip_output.c
    python+正则表达式(转)
    Eclipse中如何快速添加、删除jar包
  • 原文地址:https://www.cnblogs.com/huiguo/p/12694542.html
Copyright © 2011-2022 走看看