A questão geral aqui é: como automatizar o sshing em uma máquina, executar um script e sair sem matar o script? Eu sei que isso foi respondido várias vezes, mas não estou tendo sorte com as soluções que encontrei.
Os detalhes:
Eu tenho código em execução em várias máquinas nas quais eu ssh.
Agora, estou fazendo o seguinte em um terminal:
ssh machine1@host (log in automatically with key)
screen -S screen_name
./script.sh
<keystroke C-a-d>
exit
Demorado, e mais importante, propenso a erros (abra uma tela e saia sem executar o script, etc.).
Eu gostaria de automatizar isso. Meu primeiro pensamento foi tentar replicar isso exatamente. Eu tentei xdotool para enviar as teclas, mas o meu ambiente é apenas a linha de comando, e parece que a ferramenta errada para o trabalho. Da mesma forma espera que parece que poderia ser usado em vez de xdotool, mas, novamente, provavelmente o caminho errado para fazê-lo.
Eu também tentei usar o nohup em vez da tela, fazendo
nohup ./script.sh &
mas quando eu saio da sessão ssh e volto, parece que o script parou de funcionar quando fiz logout. Tanto quanto eu posso dizer, nohup é o caminho certo para fazê-lo.