1

Поэтому, когда у меня открыто 3 вкладки, ps aux | grep bash сообщает:

$ 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

Почему это происходит?

РЕДАКТИРОВАТЬ: рендеринг процессов в виде дерева

 | |-+= 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

1 ответ1

4

Обратите внимание, что это не два процесса bash: это один процесс bash и один процесс login с параметрами.

Именно так Apple реализовала различные параметры запуска для новых окон и вкладок, например, использовать ли рабочий каталог по умолчанию или текущий рабочий каталог оболочки, или запускать оболочку по умолчанию или конкретный.

Вы заметите, что когда вы изменяете эти параметры в настройках терминала, аргументы команды login немного меняются.

Если вы установите для каждой опции значение по умолчанию, кроме рабочего каталога новой вкладки, и измените рабочий каталог текущей вкладки, то оболочка новой вкладки будет открыта с помощью login -pfl danielbeck /bin/bash -c exec -la bash /bin/bash вместо login -pf danielbeck .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .