Como faço para sair de um terminal para que todos os processos iniciados continuem sendo executados?

3

Eu uso o comando firefox & as no terminal. Isso deve dissociar o firefox do terminal. Ainda quando fecho o terminal, o firefox sai. Alguma idéia, por que isso acontece? Como posso superar essa situação?

    
por Chirag 10.08.2012 / 00:57

2 respostas

7

Você pode sair do terminal pressionando Ctrl + D; isso quebrará a cadeia pai-filho, de modo que o terminal não seja mais o pai.

O uso do "e" comercial coloca apenas o processo em segundo plano; ele não desassocia o pai do filho, então quando o processo pai sai, o mesmo acontece com seus filhos.

    
por Marty Fried 10.08.2012 / 01:04
5

Como foi dito anteriormente, o & adicional apenas coloca o processo em segundo plano (ou seja, você recebe um novo prompt) e pode digitar um novo comando.

Matando o processo pai, fechando o terminal, envia um sinal para todos os processos filhos para finalizar.

Dependendo do shell que você está usando, você pode separar os processos usando nohup ou disown. O mais tardio é provavelmente o que você quer, já que o primeiro é requerido em invocação. Você precisa especificar o número do trabalho seguido por % , o que provavelmente será 1. Então, digite:

disown %1

Se você tiver mais de um processo em segundo plano, digite:

jobs

para obter uma lista.

    
por A Pickin 10.08.2012 / 01:19