O seguinte comando simples deve demonstrar o meu problema:
gnome-terminal --tab -t "Tab 1" -e "/bin/bash" --tab -t "Tab 2" -e "/bin/bash"
Isso deve abrir uma nova janela com duas guias e um bash shell ativo. Se eu fechar imediatamente esta nova janela usando a GUI [x] e depois executar o comando ps
, um (neste caso) subprocesso ( /bin/bash
) será deixado aberto.
Descobri que isso corresponde a todas as guias inativas que nunca foram ativadas (clicando nelas) em algum momento. Portanto, se criarmos um novo comando semelhante ao exemplo acima, mas com 5 guias em vez de 2 e você fechar imediatamente essa janela depois de executar o comando, 4 subprocessos permanecerão em execução.
Aqui está a parte peculiar ... se você clicar em cada guia para ativá-la e fechar a janela, todos os subprocessos serão mortos, como seria de se esperar.
Isso é um bug no gnome-terminal?
Como posso garantir que esses processos sejam fechados e não deixados em aberto?
Após uma investigação mais aprofundada, parece que o ID do processo pai do (s) processo (s) deixado em aberto é o PID do terminal a partir do qual o comando acima é executado. Eu esperaria que fechar a janela recém-gerada seria suficiente para matar os subprocessos correspondentes a cada guia (independentemente de ter sido ativado ou não), não ter que matar o terminal de origem original. Espero que tenha feito sentido.