Compile remotamente e execute o programa usando ssh e screen

2

Estou tentando compilar e executar um programa remotamente. No entanto, eu gostaria de isso dentro de uma tela e também gostaria de executar este usando o mecanismo de grade em outro nó depois de eu ssh. Atualmente tenho:

ssh me@server screen -R session 'qlogin; cd path; mvn options program'

Isso basicamente funciona, mas recebo uma mensagem dizendo que devo estar conectado a um terminal. Eu li sobre isso e adicionei a opção -t ao ssh. Com isso, meu comando quebra: parece que eu ssh acabou, tela começa, então não sei sobre o comando "mvn" e termina minha sessão.

Estou me perguntando por que isso está acontecendo e como iniciar corretamente os trabalhos da minha máquina local, dentro de uma tela, em um nó remoto enquanto estiver usando o mecanismo de grade.

    
por akobre01 09.08.2013 / 00:35

2 respostas

1

Eu adicionaria a opção -L à tela que ativa o log da tela (cujo padrão é o nome do arquivo screenlog.0 ). Você pode então ver o que está acontecendo. Eu imagino que a tela está vendo todo o qlogin; cd path; mvn options program como um programa para executar, (ao invés de um conjunto de comandos diferentes) falhando em executar isso e então saindo.

Outra alternativa é colocar os comandos sendo executados em um script:

#!/bin/sh
qlogin
cd path
mvn options program

Crie um arquivo screenrc (digamos que chamamos de mysessionrc):

# myscreenrc

#Create window 0 with title 'mvn' and run /path/to/myscript.sh
screen -t mvn 0 /path/to/myscript.sh

e, em seguida, execute ssh -t me@server 'screen -R session -c mysessionrc '. Eu tive que fazer isso para fazer a tela funcionar nas combinações de tela do FreeBSD + ssh +.

Se isso ainda falhar, adicione:

zombie kr
verbose on

para o início do seu arquivo mysessionrc para fazer o prompt da tela sobre o que fazer com o executando o comando após concluir k kill ou r restart e o verbose exibirá algumas informações sobre o que a tela está obtendo.

    
por 09.08.2013 / 17:49
0

Meu palpite é que, ao executar remotamente um comando via SSH, você não está gerando um terminal (pty) ao qual o Screen pode se conectar.

    
por 18.09.2014 / 06:20