Normalmente, os processos criados em um terminal (shell) são atrelados ao processo da própria shell ao serem criados. Isso faz com que, por exemplo, um processo do tomcat seja morto se a shell for morta. Outro detalhe é que se executado normalmente esse processo do tomcat irá "travar" aquela sessão da shell pra si mesmo.
Existem maneiras de criar processos não vinculados à shell, algumas delas são:\
- Executá-lo com ampersand ('&') no final, para que ele seja 'forkado' da shell atual. Dessa maneira ele irá pra background automaticamente, e seu PID não será atrelado ao PID da shell. Por exemplo:
java -jar Aplicacao.jar & - Após ter executado o processo (e já tê-lo atrelado à shell), colocá-lo em background e tornar órfãos os filhos da shell:
java -jar Aplicacao.jar
Nesse momento, pressione Ctrl + Z para colocar o processo em sleep.
Faça-o executar em background com o comando:
bg
E torne-o órfão:
disown
A partir de então é possível terminar a shell sem terminar o processo (ou seja, é possível executarexit
).
Posted by Frederico Galvão to ZeroGlosa (2012-06-15 12:15)