Como usar a instância do PM2 que já está em execução

2

Estou tentando usar o PM2 gerenciador de processos. Estou instalando com ansible e o papel franklinkim.pm2

Funciona, ele inicia meu aplicativo de nó e, se eu matar manualmente o aplicativo do nó, vejo que o PM2 o relança

Mas ..., parece que consigo acessar a instância existente do PM2.

Se digitar ps aux | grep PM2 , obtenho

root      1073  4.1  8.3 648348 41736 ?        Ssl  06:12   0:00 PM2 v0.12.15: God Daemon                               

agora quero ver a lista de processos do PM2, então eu digito sudo pm2 list e recebo

[PM2] Spawning PM2 daemon
[PM2] PM2 Successfully daemonized
┌──────────┬────┬──────┬─────┬────────┬─────────┬────────┬────────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ memory │ watching │
└──────────┴────┴──────┴─────┴────────┴─────────┴────────┴────────┴──────────┘
 Use 'pm2 show <id|name>' to get more details about an app

Falha! Em vez de me mostrar o PM2 em funcionamento, ele gerou um novo

Eu tentei sudo -u root pm2 list e apenas pm2 list , mas obtive os mesmos resultados ou se o segundo já está em execução, só vejo a lista da segunda instância, não a que está executando o meu aplicativo.

Eu sinto que seja qual for o motivo, é um mal-entendido fundamental sobre usuários e processos no linux que eu ainda não grok.

    
por gman 03.06.2015 / 08:37

1 resposta

6

pm2 usará a variável $HOME para determinar onde está o diretório .pm2 . Claro que você pode substituí-lo com $PM2_HOME variable

Quando você invoca o pm2 com ansible, parece que você usa o usuário root. Portanto, .pm2 diretório localizado em /root/.pm2 . Então, a solução está usando o comando

sudo -i pm2 list

Quando você invoca sudo sem -i , todas as variáveis de ambiente (incluindo $HOME ) ainda serão herdadas da conta original antes do sudo.

    
por 03.06.2015 / 12:04

Tags