A tela ou o tmux podem ser o que você procura, preservando as sessões ativas independentemente do SSH.
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.
A tela ou o tmux podem ser o que você procura, preservando as sessões ativas independentemente do SSH.
Tags command-line ssh bash server
Ok, encontrei uma solução.
Para qualquer outra pessoa com o mesmo problema que eu, tente isto:
O problema deve ser corrigido.
Isso já aconteceu algumas vezes e parece que coisas diferentes podem desencadear isso.
Mais recentemente, usei o botão do lado do thinkpad para desligar o Wi-Fi para economizar bateria. Coloque-o para dormir quando eu terminei e no dia seguinte ele não detectaria sinais sem fio.
Eu tentei "sudo nservice networking restart" mas não pareceu fazer nada. Eu tentei entrar em configuração de rede e alternar o interruptor on / off, mas não estava ajudando. Finalmente eu reiniciei e está funcionando.
Alguma idéia?