Executar programa terminal

2 respostas
R

Ola a todos,.

preciso fazer um, programa que ele consiga executar processos no linux.

Bom eu preciso também ter esse PID do processo.

Vi la no forum da sun que não existe nada que me de esse PID.

Bom eu sei que se eu rodo um programa no shell “firefox &”, ele vai me printar na tela o PID deste processo.
Sei pegar o que é printado na tela quando executo um programa.

Agora como eu executo o firefox no java com o & no final ?

sem ele receber como parametro ?

sei como executar o firefox no java mas não sei como fazer ele receber o & logo em seguida.

2 Respostas

seduardo

Dependendo da versão do java que vc esteja utilizando vc pode utilizar o new Process p = ProcessBuilder(“prog”, “arg1”, “arg2”).start() , ou então o Process p = Runtime.getDefaultRuntime().exec(…);

Em ambos os casos ele executa como se fosse utilizando & para esperar o processos terminar vc tem que pegar o objeto do tipo process que é retornado e chamar o método waitFor(), este método faz com que o processo espere pelo outro.

Infelismente o pid não é passado pelos métodos tradicionais. Para isto tem que utilizar subterfugios.

R

e como eu uso esse subterfugio ?

eu imaginei passar o & e pegar o que for printado no console.

Alguma dica de como pegar o PID ? sem sair com grep ?

Criado 29 de agosto de 2008
Ultima resposta 29 de ago. de 2008
Respostas 2
Participantes 2