O que é bifurcação dupla?

O que é bifurcação dupla?

Como faço para bifurcar um processo que não morre quando o shell sai?fala sobre "bifurcação dupla":

  • Dobro- fork():

    (emacs &)
    

    Os comandos entre colchetes ( )são executados em um processo de shell separado.

Você poderia explicar por que isso faria alguma diferença em comparação com um arquivo emacs &. Qual seria o sentido de executá-lo em um ambiente subshell em primeiro lugar?

Responder1

Você poderia explicar por que isso faria alguma diferença em comparação com um arquivo emacs &.

(emacs &)executa um subshell que é executado emacs &dentro dele, o que significa que seus stdin, stdoute stderrestão vinculados ao subshell. Ele se torna bifurcado duas vezes e sobreviverá (emacs &)à morte do shell inicial (onde foi executado). A execução apenas emacs &manterá stdin, stdoute stderrvinculado ao shell inicial.

emacsé na verdade um mau exemplo disso porque a versão GUI não se importará com a perda de stdin, stdout, e stderr. Você pode tentar (ls -R / &); exite grep para ver se ainda está em execução. Edições são bem-vindas para um exemplo melhor do que ls.

Qual seria o sentido de executá-lo em um ambiente subshell em primeiro lugar?

Para separá-lo completamente da casca inicial (veja acima).

informação relacionada