Почему у меня 2 процесса bash, когда я открыл только одну сессию терминала?

Вопрос или проблема

Я использую Windows WSL2 и открыл только одну сессию терминала. Я использовал команды ps и ps a. Насколько я понимаю, bash с PID 559 – это оболочка, с которой я взаимодействую. Вопрос в том, почему у меня есть другой bash с PID 399? У меня по сути открыта только одна терминал. Другие сессии неактивны.
Ниже приведён ответ CLI.

mike@DESKTOP-3B9ANKQ:~$ ps a
    PID TTY      STAT   TIME COMMAND
    187 hvc0     Ss+    0:00 /sbin/agetty -o -p -- \u --noclear --keep-baud - 115200,38400,9600 vt220
    205 tty1     Ss+    0:00 /sbin/agetty -o -p -- \u --noclear - linux
    317 pts/1    Ss     0:00 /bin/login -f
    399 pts/1    S+     0:00 -bash
    559 pts/0    Ss     0:00 -bash
    591 pts/0    R+     0:00 ps a
mike@DESKTOP-3B9ANKQ:~$ ps
    PID TTY          TIME CMD
    559 pts/0    00:00:00 bash
    592 pts/0    00:00:00 ps

Выполнение pstree показывает

systemd─┬─2*[agetty]
        ├─cron
        ├─dbus-daemon
        ├─init-systemd(Ub─┬─SessionLeader───Relay(388)───bash───pstree
        │                 ├─init───{init}
        │                 ├─login───bash
        │                 └─{init-systemd(Ub}
        ├─polkitd───3*[{polkitd}]
        ├─rsyslogd───3*[{rsyslogd}]
        ├─systemd───(sd-pam)
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-resolve
        ├─systemd-timesyn───{systemd-timesyn}
        ├─systemd-udevd
        ├─unattended-upgr───{unattended-upgr}
        └─wsl-pro-service───7*[{wsl-pro-service}]```

Ответ или решение

Когда вы запускаете терминал в WSL2 и видите несколько процессов bash, это может вызывать некоторое недоумение. Давайте подробно рассмотрим, почему в вашем случае появились два процесса bash с PID 399 и 559, и какие процессы за ними стоят, используя данные, предоставленные вами.

1. Понимание процессов в WSL2

WSL (Windows Subsystem for Linux) создает виртуализированную среду для работы Linux на Windows. Это означает, что каждый терминал, который вы открываете, может взаимодействовать с несколькими фоновыми процессами, которые необходимы для функционирования системы.

2. Описание выводов команд ps

В выводе команды ps a мы видим следующее:

  • PID 399: Этот процесс — наблюдаемый -bash, который запущен от одного из обеспечивающих процессов. Он отвечает за одну из сессий терминала.
  • PID 559: Это основной процесс bash, с которым вы работаете в интерактивном режиме в текущем терминале.

Команда ps показывает текущий интерактивный сеанс, к которому вы подключены (559), в то время как команда ps a отображает все запущенные процессы с терминалом, включая предыдущую загрузку сессии.

3. Почему два процесса bash?

Причины существования двух процессов связаны с поведением оболочки и инициализацией сеансов:

  • Инициализация сеанса: При запуске терминала bash может запрашивать вход через другой процесс, который запускается до основной оболочки. Этот вспомогательный процесс может остаться активным в фоновом режиме для обработки команд или терминальных событий (например, возможность восстановления сессии после случайного завершения).

  • Процесс логина: PID 399 был создан как процесс входа (/bin/login -f), который позволяет вам аутентифицироваться в системе. Даже если вы открыли только один сеанс, процесс логина остается активным для управления вашими параметрами сессии.

4. Получение дополнительной информации с помощью pstree

Когда вы используете команду pstree, вы видите иерархию процессов в системе, где четко видно, что:

  • systemd (или его эквивалент в WSL) управляет различными фоновыми процессами.
  • SessionLeader отвечает за управление текущим сеансом, включая создание и поддержание процессов, таких как ваш bash.

5. Заключение

Таким образом, наличие двух процессов bash при открытии одного терминала в WSL2 абсолютно нормально. Это связано как с особенностями управления процессами в Linux-системах, так и с необходимостью поддержания рабочей сессии активной с помощью дополнительных процессов, таких как процесс логина и вспомогательные процессы. Такой подход обеспечивает более стабильную и гибкую среду для взаимодействия пользователя с системой.

Если у вас остались дополнительные вопросы о работе процессов в WSL2 или о других аспектах Linux, не стесняйтесь обращаться за разъяснениями!

Оцените материал
Добавить комментарий

Капча загружается...