Iniciar comando em segundo plano por SSH

3

Problema:

Eu quero canalizar a saída de docker logs -f (para todos os contêineres) em outro comando e mantê-lo em execução no servidor remoto. Eu já encontrei Execute um comando nohup sobre SSH e, em seguida, desconecte mas não tive sucesso em adotar a solução para esse caso de uso.

O que eu tentei até agora:

ssh server << EOF
for cont in 'docker ps -q'; do
        docker logs -f $cont 2>&1 | bunyan | /var/opt/go-logsink/go-logsink connect 2>&1 &
done
EOF

versão nohup: nohup "docker logs -f $cont 2>&1 | bunyan | /var/opt/go-logsink/go-logsink connect"

A execução desse loop dentro de uma sessão de tela funciona, mas eu quero automatizar a chamada após uma implantação e isso não funciona. Também tentei chamar nohup "<command>" dentro do loop e vejo isso criando o processo, após a desconexão do ssh os processos são mortos.

Pergunta:

Como executar esse loop para que ele crie processos que permanecem ativos após o fechamento da sessão ssh.

    
por Sascha 07.02.2017 / 07:35

1 resposta

1

A tela ou o tmux podem ser o que você procura, preservando as sessões ativas independentemente do SSH.

    
por SYN 07.02.2017 / 07:41