ssh não retorna ao executar o processo remoto em bg

3

Estou tentando abrir um túnel em um servidor remoto a partir da máquina local, executando um comando remotamente via ssh. Eu estou usando o sshpass também.

sshpass -fpw_file.txt ssh [email protected] 'bash /home/username/do_stuff.sh &'

Este do_stuff.sh contém apenas uma linha:

ssh -f -N -L 8888:hostname:9999 user@host &

Mas a chamada (primeiro comando) não está retornando. Se eu colocar & fora daspas simples, gera um processo que não está sendo morto. Embora seja um vazamento de memória muito pequeno, seria bom saber se há uma maneira de fazer isso de forma limpa.

Obrigado!

    
por Nirmal 20.10.2016 / 19:04

1 resposta

2

Redirecione os fluxos de i / o para nulos. Processos BG com descritores abertos podem fazer com que o SSH não feche .

sshpass -fpw_file.txt ssh [email protected] 'bash /home/username/do_stuff.sh &> /dev/null < /dev/null &'

Explicação

&> /dev/null tira stdout e stderr e redireciona para nulo

< /dev/null pega stdin e redireciona para nulo

& no final envia o processo para o segundo plano.

    
por 20.10.2016 / 20:10