就像苏南大叔所说的那样,pm2 start npm -- start这条命令是pm2的万能命令,pm2 start
,就是这一系列命令中的最豪华命令。这个json我们可以理解为一个任务参数描述文件。通过这个json文件,我们把在命令行里面不好描述的各种参数放到一个json文件里面来。
pm2 start .json
pm2 start命令中的json格式详解(图1-1)
最精简版本
{
"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": "/combined.outerr.log",
"out_file": "/out.log",
"error_file": "/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": [],