В языке bash
«оболочка входа» означает оболочку, вызываемую с флагом -l
или где первый символ аргумента 0 начинается с -
. (См. man bash
INVOCATION секция ).
В вашем примере вы можете видеть, что процесс 31728 называется -bash
, поэтому начинается с -
и поэтому вызывается как оболочка входа в систему.
logout
просто выходит из оболочки входа в систему.
Итак, если вы запустите bash -l
, а затем logout
, вы снова окажетесь в вызывающей оболочке.
$ echo $$
32145
$ bash -l
bash-4.2$ logout
$ echo $$
32145
Теперь login
программа (процесс 30488 в вашем примере )ожидает выхода из дочерней оболочки, затем выполняет некоторые действия по очистке (, например wtmp
,utmp
)и завершает работу. Вот почему вы больше не видите этот процесс после запуска logout
.