A tradicional noção Unix da sessão faz sentido para as sessões de login em um terminal de texto .
Em uma sessão X11 (que é sessão no sentido genérico, não no sentido específico do Unix), todos os processos são normalmente descendentes de um processo líder de sessão. Este pode ser o gerenciador de sessão (se houver), o gerenciador de janelas ou o ativador (shell gráfico), se houver um. Há um processo que inicia a sessão do X11 e cuja morte termina a sessão, mas seu papel varia entre os ambientes de área de trabalho.
Você pode observar a árvore de processos com pstree
(pode não fazer parte da instalação padrão) ou ps axf
(somente Linux). O servidor X não faz parte do mesmo ramo da árvore que os outros programas; seu papel é apenas mediar entrada e saída, nunca está envolvido no lançamento de programas. Normalmente, você verá xinit
ou um gerenciador de exibição com dois filhos, sendo um deles o servidor X e o outro é o líder da sessão X.
Alguns de seus programas GUI podem não estar anexados a essa árvore de processo, se o processo pai estiver inativo (por exemplo, porque foram iniciados em segundo plano por um script de wrapper que foi encerrado).
the real interaction is between user and the shell.
Apenas se você estiver realmente interagindo com o shell. Quando você está interagindo com outro programa em execução em um terminal, o shell não está envolvido. Entrada e saída vão diretamente entre o programa e o terminal, o shell está apenas em segundo plano esperando que o programa saia ou seja suspenso.