PM2 (Process Manager)
配置檔案
產生 JavaScript 範本檔案 ecosystem.config.js:
pm2 ecosystem
編輯範本檔案:
vim ecosystem.config.js
module.exports = {
// 程序
apps : [
// 第一個為主要程序
{
// 程序名稱
name: 'gp-sync',
// 啟動的腳本路徑
script: './gp-sync/server/app.js',
// Options reference: https://pm2.keymetrics.io/docs/usage/application-declaration/
// 傳給腳本的參數
// args: 'one two',
// 使用的實例數
instances: 1,
// 發生異常自動重啟
autorestart: true,
// 監聽自動重啟 (所有子目錄變化時),預設 false 不監聽
watch: false,
// RAM 使用超出自動重啟
max_memory_restart: '150M',
// 日誌日期格式
log_date_format: 'YYYY-MM-DD HH:mm Z',
// 開發環境 pm2 start ecosystem.config.js --env development
env: {
NODE_ENV: 'development'
},
// 正式環境 pm2 start ecosystem.config.js --env production
env_production: {
NODE_ENV: 'production'
}
},
// 次要程序 (實測不會延用主要程序其它設定)
{
name: 'human-resource',
script: './human-resource/server/app.js',
},
{
name: 'process-price',
script: './process-price/server/app.js',
},
{
name: 'rd-kpi',
script: './rd-kpi/server/app.js',
},
{
name: 'revenue-rate',
script: './revenue-rate/server/app.js',
},
{
name: 'semi-automatic',
script: './semi-automatic/server/app.js',
},
{
name: 'web-api (gp)',
script: './web-api/gp/app.js',
},
{
name: 'web-api (mes)',
script: './web-api/mes/app.js',
},
],
// 部署方式
// 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
參考
本著作係採用創用 CC 姓名標示-相同方式分享 3.0 台灣 授權條款授權.