Por que o OS X está criando dois processos bash por guia?

1

Então, quando eu tenho 3 guias abertas, ps aux | grep bash relatórios:

$ ps aux | grep bash

root        629   0.0  0.0  2486024   4812 s002  Ss    8:01pm   0:00.02 login -pf moon /bin/bash
moon        513   0.0  0.0  2434460   2508 s001  S+    8:01pm   0:00.07 -bash
root        512   0.0  0.0  2496264   4884 s001  Ss    8:01pm   0:00.02 login -pf moon /bin/bash
moon        381   0.0  0.0  2434460   2500 s000  S+    8:00pm   0:00.09 -bash
root        379   0.0  0.0  2498312   4920 s000  Ss    8:00pm   0:00.03 login -pf moon /bin/bash
moon        740   0.0  0.0  2432768    620 s002  R+    8:01pm   0:00.00 grep bash
moon        630   0.0  0.0  2434460   2500 s002  S     8:01pm   0:00.07 -bash

Por que isso está acontecendo?

EDIT: Renderizando os processos como uma árvore

 | |-+= 04939 moon /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal -psn_0_2322999
 | | |-+= 04942 root login -pf moon /bin/bash
 | | | \-+= 04943 moon -bash
 | | |   \-+= 05051 moon man login
    
por 0xcafebabe 13.10.2013 / 11:07

1 resposta

4

Note que não são dois processos bash : é um processo bash e um processo login com opções.

Foi assim que a Apple implementou as várias opções de inicialização para novas janelas e guias, por exemplo, se deve usar o diretório de trabalho do shell padrão ou atual ou se deve iniciar o shell padrão ou um específico.

Você notará que quando você altera essas opções nas preferências do Terminal, os argumentos do comando login mudam um pouco.

Se você definir todas as opções para padrão , exceto o diretório de trabalho de uma nova guia, e alterar o diretório de trabalho da guia atual, o shell da nova guia será aberto por login -pfl danielbeck /bin/bash -c exec -la bash /bin/bash de login -pf danielbeck .

    
por 13.10.2013 / 13:14

Tags