É claro que lxterminal
se esquiva de um processo filho. Pense nisso. Esse processo filho é o shell interativo que é anexado ao terminal emulado por lxterminal
(ou qualquer outro programa alternativo fornecido com a opção -e
). Ele, por sua vez, faz mais processos netos, dependendo do que se fez naquele shell.
Matar lxterminal
fecha o lado mestre do pseudo-terminal que ele usa, que parece um desligamento terminal no que diz respeito ao lado escravo. O lado do escravo é o que o shell interativo vê como seu terminal de controle. Portanto, o shell deve ver um desligamento normal do terminal, gerando um SIGHUP
para o líder da sessão se a configuração -hupcl
do terminal estiver ativada. Esse líder de sessão é esse processo de shell.
O líder da sessão é responsável pelo controle do trabalho dentro da sessão e por passar o sinal de desligamento para todos os seus trabalhos. Obviamente, se você tiver disown
ed algo executado pelo shell, ou nohup
ped, o líder da sessão não repassará o sinal de desconexão e que algo continuará a ser executado mesmo que lxterminal
tenha sido finalizado eo mestre lado do pseudo-terminal foi fechado. Isso é o que o disown
e nohup
fazem .
Você precisa descobrir por que o que quer que você esteja executando nessa sessão interativa não está morrendo quando o pseudo-terminal é desligado. Você não nos contou nada sobre o que é isso e não somos telepáticos. Portanto, há pouco a sugerir além das generalidades sobre o que os shells de líderes de sessão são projetados para fazer.