Sim. Citando esta resposta de Gilles em U & L :
O PGID associado ao terminal pode ser definido pelo
tcsetpgrp
função, que é chamado pelo shell quando ele inicia um externo programa em primeiro plano ou move um trabalho para o primeirofg
.
Digamos que eu tenha aberto uma janela de terminal que usa bash
. O grupo de processos ao qual bash
pertence é o grupo de processos em primeiro plano do terminal.
Agora digamos que eu abri cat
no terminal, o que acontecerá é que um novo grupo de processos será criado e cat
pertencerá a esse grupo de processos, e esse grupo de processos agora se tornará o primeiro plano grupo de processos do terminal .
Quando cat
termina e a execução retorna para bash
, o grupo de processos ao qual bash
pertence se torna novamente o grupo de processos em primeiro plano do terminal .
A minha pergunta é: como o grupo de processos de foreground do terminal mudou nestes dois tempos, é bash
que o mudou?
Sim. Citando esta resposta de Gilles em U & L :
O PGID associado ao terminal pode ser definido pelo
tcsetpgrp
função, que é chamado pelo shell quando ele inicia um externo programa em primeiro plano ou move um trabalho para o primeirofg
.