Diferença entre executar comandos localmente versus usar o SSH para fazer comandos remotos

1

Estou tentando o SSH em uma máquina remota e execute um arquivo .ksh em uma máquina para executar um programa em Java.

Se for SSH na máquina com uma ferramenta como Putty, execute este comando:

cd /folder/folder/examples; ksh runexample.ksh NameOfClass methodName

O programa Java executa seu curso completo, enviando alguns dados, colocando-os em um banco de dados externo e exibindo uma resposta. No entanto, se eu tentar SSH na máquina a partir da linha de comando em outra máquina, da seguinte forma:

/usr/bin/ssh [email protected] "cd /folder/folder/examples; ksh runexample.ksh NameOfClass methodName;"

O programa não é executado totalmente. Ele não me dá nenhum erro, mas simplesmente retorna a notificação de que os arquivos de classe foram carregados com êxito, a primeira linha do programa Java é exibida e, em seguida, sai sem enviar uma solicitação ou receber uma resposta.

Quais são as diferenças nas minhas duas abordagens? Alguma ideia do que estaria causando isso?

    
por Chenmunka 04.12.2012 / 22:00

2 respostas

0

Seu shell está sendo encerrado antes do término do comando java e é eliminado todos os processos subordinados. Você precisa reescrever seu script para que ele aguarde a conclusão do programa java, ou então reescrevê-lo para permitir que os processos sobrevivam além da saída.

    
por 04.12.2012 / 22:11
0

O problema foi que eu acidentalmente incluí um ponto-e-vírgula depois de "methodName" no comando SSH. Interessante para mim é que isso lançou o aplicativo, exibido a primeira linha e, em seguida, saia sem nenhuma mensagem de erro!

    
por 05.12.2012 / 05:27