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