1. Introdução
PM2 caminho para as configurações do arquivo de configuração de suporte de serviços de aplicação, formato de arquivo é suportado configurações Javascript
, JSON
, YAML
. Os seguintes focos Javascript
, JSON
estes dois formatos;
Segundo, o arquivo de configuração
1. Javascript
Formato
Digite o seguinte comando para produzir um modelo de arquivo de configuração:
pm2 init
pm2 ecosystem
A geração é a ecosystem.config.js
seguinte:
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 : '[email protected]:repo.git',
path : '/var/www/production',
'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env production'
}
}
};
Você pode modificar o conteúdo da configuração conforme necessário e iniciar o comando:
pm2 start ecosystem.config.js
Observe que o uso de um arquivo de configuração Javascript requer que o nome do arquivo termine com .config.js
2. json
Formato
Por exemplo, chamado 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" //日期格式
}]
}
Comando Iniciar:
pm2 start config.json
Você também pode escrever o pedido package.json
aqui. Como segue:
Ao npm run pm2
início
Você pode definir quantas JSON
declarações de aplicativo forem necessárias .
{
"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. Descrição dos itens de configuração comuns:
apps
: Estrutura Json, apps é uma matriz, cada membro da matriz corresponde a um aplicativo em execução no pm2;
name
: Nome do aplicativo;
cwd
: O diretório em que o aplicativo está localizado;
script
: O caminho do script do aplicativo;
log_date_format
: Especifique o formato da data do log, como AAAA-MM-DD HH: mm: ss;
error_file
: Personalize o arquivo de log de erros do aplicativo.Erros de código podem ser encontrados neste arquivo;
out_file
: Arquivos de log de aplicativos personalizados, como impressão de uma grande quantidade de saída padrão, farão com que o log pm2 seja muito grande;
pid_file
: Arquivo pid de aplicativo personalizado;
interpreter
: O interpretador de script especificado;
interpreter_args
: Parâmetros passados para o intérprete;
instances
: O número de instâncias de inicialização do aplicativo, válidas apenas no modo de cluster, o padrão é fork;
min_uptime
: O tempo mínimo de execução, aqui é definido como 60s, ou seja, se o aplicativo sair dentro de 60s, o pm2 pensará que o programa é encerrado de forma anormal; nesse momento, o número de reinicializações max_restarts é acionado;
max_restarts
: Defina o número de vezes que o aplicativo sai de forma anormal e reinicia, o padrão é 15 vezes (contando de 0);
autorestart
: O padrão é true e reinicie automaticamente quando ocorrer uma exceção;
cron_restart
: Comece regularmente para resolver os problemas que a reinicialização pode resolver;
max_memory_restart
: Número máximo de limites de memória, excedendo o reinício automático;
watch
: Para ativar o modo de monitoramento, o padrão é falso. Se definido como true, o pm2 será recarregado automaticamente quando o aplicativo for alterado. Aqui você também pode definir o arquivo que deseja monitorar.
ignore_watch
: Ignore a pasta monitorada e suporte expressões regulares;
merge_logs
: Defina anexar log em vez de novo log;
exec_interpreter
: O tipo de script do aplicativo, o padrão é nodejs;
exec_mode
: Modo de inicialização do aplicativo, suporte ao modo garfo e cluster, o padrão é garfo;
autorestart
: Ativar / desativar a reinicialização automática quando o aplicativo falhar ou sair;
vizion
: Ativar / desativar o recurso de visualização (controle de versão);
env
: Variável de ambiente, tipo de objeto;
force
: Padrão false, se true, você pode iniciar um script repetidamente. O pm2 não recomenda isso;
restart_delay
: Atraso no tempo de reinicialização em caso de reinício anormal;