Com o terminal de controle, o processo é capaz de dizer ao kernel qual grupo de processos é o grupo de processos de primeiro plano (na mesma sessão). Se houver um grupo de processos de primeiro plano para um terminal, poderemos controlar o grupo de processos de primeiro plano por meio do terminal, por exemplo, Ctrl-C / Ctrl- \ para finalizar o grupo de processos de primeiro plano. (Um terminal pode ter apenas um grupo de processos em primeiro plano, ou pode não ter nenhum. Para colocá-lo precisamente, um terminal só pode ser associado a uma sessão de processo.)
Com o terminal de controle, mesmo se você já redirecionar o stdin para outros locais / arquivos, você ainda poderá ler / gravar de / para o terminal de controle, o /dev/tty
. Este arquivo especial é um sinônimo dentro do kernel para o terminal de controle do processo atual. Se o seu processo não tiver um terminal de controle associado, abra este arquivo. O que você pode fazer em relação a este arquivo? Por exemplo, alguns programas precisam que o usuário insira a senha antes de fazer algo, como programas para login ou criptografia. Esses programas podem proibir o usuário de inserir a senha do stdin, o que significa que mesmo que você redirecione o stdin para um arquivo aleatório, ele ainda aguardará pelo seu tipo. A razão é que todos eles abrem o / dev / tty para ler.
Para resumir, com o terminal de controle, o kernel está ciente de onde entregar o terminal gerado pelo terminal e a entrada do terminal se eles forem esperados por alguém. Isso é tudo.
Portanto, é desnecessário associar um processo a um terminal de controle, se ele não quiser ser controlado por nenhum terminal e não quiser ler / gravar de / para "/ dev / tty" (como a maioria dos programas daemon). No entanto, um processo comum lançado de dentro de um shell sempre tem um terminal de controle associado, porque ele é membro da sessão de shell, que já estabeleceu um terminal de controle quando o shell é inicializado. (Na verdade, um processo aleatório não pode anexar um terminal como terminal de controle, apenas o processo de líder de sessão pode.)