我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

就像苏南大叔所说的那样,pm2 start npm -- start这条命令是pm2的万能命令,pm2 start <json>,就是这一系列命令中的最豪华命令。

苏南大叔:pm2 start命令中的json格式详解 - pm2-start-json
pm2 start命令中的json格式详解(图2-1)

基本姿势

这个json我们可以理解为一个任务参数描述文件。通过这个json文件,我们把在命令行里面不好描述的各种参数放到一个json文件里面来。

pm2 start <json>.json

苏南大叔:pm2 start命令中的json格式详解 - json
pm2 start命令中的json格式详解(图2-2)

最精简版本

{
    "name": "manage",      //项目名称
    "script": "./bin/www", //要执行的脚本
    "cwd":"./",            //项目所在目录
}

执行sh文件版本

{
    "name": "manage",      //项目名称
    "script": "./bin/www.sh", //要执行的脚本
    "cwd":"./",            //项目所在目录
    "exec_interpreter": "bash",
}

设置文件监控版本,文件变动,就重启服务

{
    "name": "manage",      //项目名称
    "script": "./bin/www", //要执行的脚本
    "cwd":"./",            //项目所在目录
    "watch":[  //添加受监控的文件,以便自动更新
        "models",
        "routes"
    ],
    "ignore_watch" : [  //不监视的文件
        "node_modules", 
        "client/img"
    ], 
    "watch_options": {  //监视配置,具体见 http://pm2.keymetrics.io/docs/usage/watch-and-restart/
      "followSymlinks": false
    }
}

设置log位置

{
    "name": "manage",      //项目名称
    "script": "./bin/www", //要执行的脚本
    "cwd":"./",            //项目所在目录
    "log_file": "<yourpath>/combined.outerr.log",
    "out_file": "<yourpath>/out.log",
    "error_file": "<yourpath>/err.log",
}

实战例子demo

下面的这个pm2.json来自于开源软件cmswing。大家可以看到,在苏南大叔所描述的最简单的demo的基础上,又增加了新的参数定义。

{
  "apps": [{
    "name": "CMSWing",
    "script": "production.js",
    "cwd": "/home/www.cmswing.net",
    "exec_mode": "fork",
    "max_memory_restart": "1G",
    "autorestart": true,
    "node_args": [],
    "args": [],
    "env": {
      
    }
  }]
}

当然,pm2的参数还有很多很多很多,这里仅仅是个范例demo,更多的参数可以点击这里,查看官方文档。http://pm2.keymetrics.io/docs/usage/cluster-mode/

结语

感谢您的阅读,欢迎继续关注苏南大叔的pm2相关文章。https://newsn.net/tag/pm2/

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   js    node