Em geral, o logout elimina os aplicativos que estão conectados aos meios de interação com o usuário. Quando você está logado em um terminal de texto (local ou remotamente), todos os aplicativos que estão conectados a esse terminal são eliminados quando você efetua logout (diretamente pelo kernel ou indiretamente pelo shell). Quando você está conectado a um ambiente gráfico, todos os aplicativos que estão conectados ao servidor X são eliminados quando você efetua logout (ou, mais precisamente, a conexão com o servidor X é interrompida, o que faz com que a maioria dos aplicativos saia).
Efetuar logout não elimina todos os processos iniciados por um usuário. O usuário pode querer deixar os programas em execução em segundo plano ou pode estar conectado em várias sessões.
Aplicativos como ssh-agent
e gpg-agent
não são interativos, portanto, não estão conectados a nenhum terminal ou servidor X. Uma configuração normal permite que sejam mortos por outros meios. Geralmente, o agente é o processo pai de toda a sessão: os scripts de inicialização da sessão organizam para executar algo como ssh-agent $SHELL
ou ssh-agent $SESSION_MANAGER
. Dessa forma, quando o processo filho que é o líder da sessão sai, o agente também sai (porque é assim que o agente é projetado). Se o agente for iniciado de forma diferente, cabe ao gerenciador de sessões organizar para eliminá-lo.
Quando você estava experimentando enquanto seguia esse tutorial, evidentemente você iniciou muitos processos de agente de maneiras que o autor do tutorial não esperava, e eles não morreram com sua sessão. Você pode matar os que não está usando. Depois de chegar a uma configuração estável, verifique se o agente foi morto quando você sair. (A menos que você prefira executar um único agente e tê-lo funcionando permanentemente, o que pode ser uma escolha razoável em uma máquina pessoal.)