Olá, estou tentando criar uma aplicação que executa outra aplicação dentro de um servidor linux por SSH (usando o ganymed SSH2) , porém estou tendo problemas com o path.
A aplicação a ser executada no servidor remoto é Java também, e na hora de executar eu recebo a seguinte mensagem:
O path está configurado para incluir o diretorio bin do java dentro do arquivo /etc/profile. Se eu conecto por ssh na maquina com um cliente SSH (putty) eu consigo rodar a aplicação tranquilamente. Agora se eu tento automatizar isto fazendo com que um programa execute a aplicação no servidor remoto o path fica desconfigurado e da esse erro.
[quote=Sephirot]Olá, estou tentando criar uma aplicação que executa outra aplicação dentro de um servidor linux por SSH (usando o ganymed SSH2) , porém estou tendo problemas com o path.
A aplicação a ser executada no servidor remoto é Java também, e na hora de executar eu recebo a seguinte mensagem:
O path está configurado para incluir o diretorio bin do java dentro do arquivo /etc/profile. Se eu conecto por ssh na maquina com um cliente SSH (putty) eu consigo rodar a aplicação tranquilamente. Agora se eu tento automatizar isto fazendo com que um programa execute a aplicação no servidor remoto o path fica desconfigurado e da esse erro.
Alguem conheçe uma solução para isto?
Obrigado.[/quote]
Tentou passar o caminho completo para o aplicativo? Que tal deixar esse “caminho completo para o aplicativo” configurável externamente via um arquivo de configuração por exemplo?
não seria muito útil pois existem vários servidores… o IP e usuário de cada servidor fica numa base de dados, mas ai eu teria que guardar também o caminho para o java de cada servidor…
não me parece a melhor solução.
Eu vi que quando eu altero o PATH no arquivo /etc/environment fica certinho…as variáveis de ambiente são carregadas corretamente e eu consigo executar o programa java.
Alguem sabe me dizer a diferença deste arquivo para o .bashrc e /etc/profile ?
/etc/profile -> system-wide .profile file for the Bourne shell (sh(1)) and Bourne compatible shells (bash(1), ksh(1), ash(1), …). É usado para os shells de login de todos os usuários
~/.profile -> executed by the command interpreter for login shells. Shells de login daquele usuário específico. Não é levado em consideração caso ~/.bash_profile ou ~/.bash_login existam.
~/.bash_logout -> executed by bash(1) when login shell exits. Usado no logout para cada usuário.
~/.bashrc -> executed by bash(1) for non-login shells. Usado no início de shells que não são de login (específico para cada usuário).