Eu tenho um script no servidor. Se eu executá-lo localmente no servidor, não há problema.
<user@server> ~ % restart_forms A
forms [A] is Restarting
<user@server> ~ %
Porém, se eu executá-lo remotamente do cliente (outra máquina Linux), será assim
<user@client> ~ % ssh server /path/restart_forms A
forms [A] is Restarting
Essa tela trava e nunca volta aos controles; Eu tenho que usar ctrl+c para encerrar o script todas as vezes e depois voltar aos controles.
Eu sei que isso provavelmente está relacionado a coisas stdin, stdout e stderr. Por enquanto eu tentei rodar este background
<user@client> ~ % ssh server /path/restart_forms A &
Também tentei
<user@client> ~ % ssh server /path/restart_forms A >/dev/null 2>&1 &
Todos acima falham e apresentam o mesmo problema. (Não consigo criar uma tela para execução por alguns motivos comerciais)
Alguém tem alguma ideia? Obrigado
Atualização: quando tento ps -ef | grep restart_forms
no cliente, vejo que esse script ainda está em execução no cliente. Não deveria ser assim.
Responder1
Se você precisar executar um script que não termina sozinho e quiser executá-lo em algo como, ssh
é melhor executá-lo em uma sessão screen
ou tmux
, para que seu terminal fique separado daquele ssh
usado. Dessa forma, ssh
você estará livre para sair após invocar o script, e o script poderá continuar pelo tempo que desejar.
Para fazer isso faça algo como o seguinte:
ssh <user>@<host> screen -d -m restart_forms A