executa pm2 do shell script remoto

1

Estou tentando escrever um script que faz ssh em vários servidores e executa alguns comandos para iniciar meu aplicativo. Um dos comandos (pm2) sempre diz pm2: comando não encontrado. É assim que estou tentando isso:

ssh -o StrictHostKeyChecking=no -i /Path/to/key-pair.pem ubuntu@${ec2ips[i]} 'bash ' << 'STARTAPP'
    cd ~/my-app-folder
    pm2 start ./bin/www --name 'my-app'
    exit
STARTAPP

quando eu ssh normalmente, todos os comandos do pm2 funcionam bem. Se eu ssh in e executar um script com pm2, também funciona como esperado. É só quando tento executá-lo em uma máquina remota da minha máquina.

    
por user137717 29.06.2016 / 04:12

1 resposta

0

Quando você executa um shell interativo, ele define a variável PATH de acordo com seus arquivos "rc" (por exemplo, bash_profile). Quando você executa o comando ssh "não interativo", muitos desses scripts não são executados e, portanto, o PATH não está definido.

Você deve incluir o nome do caminho em pm2 , mesmo que seja o diretório atual (por exemplo, ./pm2 ou /path/to/pm2 ) para garantir que ele seja encontrado, ou export PATH=.... antes da chamada para pm2 .

    
por 29.06.2016 / 04:22