# 配置文件
官网 https://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/ (opens new window)
PM2 empowers your process management workflow. It allows you to fine-tune the behavior, options, environment variables, logs files of each application via a process file. It’s particularly useful for micro-service based applications.
Configuration format supported are Javascript, JSON and YAML.
To generate a sample process file you can type this command:
# 1. Javascript 方式
# 生成
pm2 ecosystem
1
# ecosystem.config.js:
module.exports = {
apps : [{
name : "worker-app",
script : "./worker.js",
watch : true,
env: {
"NODE_ENV": "development",
},
env_production : {
"NODE_ENV": "production"
}
},{
name : "api-app",
script : "./api.js",
instances : 4,
exec_mode : "cluster"
}]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 使用
$ pm2 [start|restart|stop|delete] ecosystem.config.js
# Start all applications
$ pm2 start ecosystem.config.js
# Start only the app named worker-app
$ pm2 start ecosystem.config.js --only worker-app
# Stop all
$ pm2 stop ecosystem.config.js
# Restart all
$ pm2 start ecosystem.config.js
## Or
$ pm2 restart ecosystem.config.js
# Reload all
$ pm2 reload ecosystem.config.js
# Delete all
$ pm2 delete ecosystem.config.js
# Act on a specific process
pm2 start ecosystem.config.js --only api-app
pm2 restart ecosystem.config.js --only api-app
pm2 reload ecosystem.config.js --only api-app
pm2 delete ecosystem.config.js --only api-app
pm2 start ecosystem.config.js --only "api-app,worker-app"
# Switching environments
## Inject what is declared in env_production
pm2 start process.json --env production
## Inject what is declared in env_staging
pm2 restart process.json --env staging
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 2. JSON 方式
← 命令