Por que ssh -t
não espera pela conclusão dos trabalhos em segundo plano?
Exemplo:
ssh user@example 'sleep 2 &'
Isso funciona como esperado, pois o ssh retorna após 2 segundos, enquanto
ssh user@example -t 'sleep 2 &'
não espera sleep
terminar e retorna imediatamente.
Alguém pode explicar a razão por trás disso? Existe uma maneira de deixarssh -t
aguardar a conclusão de todos os processos em segundo plano antes de retornar?
Meu caso de uso é com o qual inicio um script ssh -t
, e esse script inicia vários trabalhos em segundo plano que devem permanecer ativos após a conclusão do script principal. Com ssh -t
isso não é possível até agora.
fonte
nohup
para manter um script em execução assim. (Você também pode considerar iniciar de longa execução empregos dentro detmux
modo que você pode monitorar seu progresso de forma interativa, mas um arquivo de log funciona bem.)Use
wait
:fonte