Como invoco um processo com um determinado binário de java e todos os processos chamados por esse processo?

3

Eu preciso chamar um determinado processo com um determinado binário java. Chame esse processo de "foo". No entanto, foo também invoca vários outros processos via java, mas foo é uma caixa preta para mim. Quando foo invoca esses processos, ele apenas executa "java bar", "java bat", etc. Como posso dizer ao foo e a qualquer processo chamado pelo foo, para usar / full / path / to / java apenas? Essencialmente eu quero usar "update-alternatives" para uma única sessão de shell e / ou uma única árvore de processos.

OS são Centos7, shell é bash.

Configurar o sistema java está fora de questão, já que outros processos no sistema precisam de um binário java diferente.

    
por cat pants 09.03.2017 / 23:46

1 resposta

2

Crie um diretório ~/myjava que contenha apenas um link simbólico para /full/path/to/bin/java .

mkdir ~/myjava
ln -s /full/path/to/bin/java ~/myjava/java

Execute o processo com este diretório no início do caminho de pesquisa do comando. Além disso, alguns programas analisam a variável de ambiente JAVA_HOME . Certifique-se de que seja consistente. O executável java real deve estar em um subdiretório chamado bin ou $JAVA_HOME .

PATH=~/myjava:$PATH JAVA_HOME=/full/path/to foo
    
por 11.03.2017 / 02:32