'ssh -R' não será executado em /etc/rc.local

3

Eu escrevi o seguinte comando em /etc/rc.local :

ssh -R 32400:192.168.0.100:32400 [email protected] -N

mas não será iniciado.

Alguma ideia do porquê?

    
por Marcin Marczyk 10.09.2015 / 18:54

1 resposta

1

Talvez a rede ainda não esteja pronta quando rc.local for executado.

O código a seguir esperará pela rede antes de se conectar:

(
until ping -nq -c3 W.X.Y.Z; do
   # Waiting for network
   sleep 5
done
ssh -R 32400:192.168.0.100:32400 [email protected] -N
)&

W.X.Y.Z é um endereço IP que pode ser acessado e responde a pings. Talvez seja o gateway padrão da sua rede, o DNS do Google (8.8.8.8), etc.

O código entre parênteses é executado em um novo shell, e o & faz com que seja executado em segundo plano. Não bloqueará a execução de rc.local .

Os comandos entre until e done serão repetidos até que o ping seja bem-sucedido, ou seja, receba uma resposta (ou seja, a rede está ativa).

    
por Eric Carvalho 11.09.2015 / 00:53