Eu vejo dois problemas (potenciais) com seu encantamento de
ssh -t remote screen -S datanode -d -m ~/hadoop/bin/hdfs datanode
- O shell cliente / local (aquele que está executando
ssh ) é aquele que está expandindo ~ e substituindo pelo valor de $HOME , que pode ser diferente do servidor remoto . Sugira que você use um caminho relativo (por exemplo, ./hadoop/bin/hdfs ) ou um caminho completo ou cite o comando remoto com aspas simples (por exemplo, '~ / hadoop / bin / hdfs datanode') para impedir a expansão no cliente.
- Como o comando
screen está iniciando uma instância desanexada, mas ainda é um processo filho do shell iniciado por ssh, ele é finalizado quando o shell remoto é encerrado.
Além disso, como a tela cria seu próprio tty, você não precisa da opção -t para ssh .
Tente usar -f para informar ssh para entrar em segundo plano antes da execução do comando. ou seja:
ssh -f remote screen -S datanode -d -m ./hadoop/bin/hdfs datanode
Alternativa igualmente válida usando nohup :
ssh remote nohup screen -S datanode -d -m ./hadoop/bin/hdfs datanode