Ao inspecionar processos em execução, você notará um campo TTY na saída do comando ps. Este campo é importante, pois indica o terminal de controle que executou o comando. Entender este conceito é fundamental para gerenciar processos de forma eficaz.
O que é um TTY
TTY é uma abreviação para "Teletype", que historicamente era um dispositivo físico para interagir com um computador. Nos sistemas Linux modernos, um TTY refere-se ao terminal que fornece a entrada e saída padrão para um processo.
Existem dois tipos principais de terminais que você encontrará: dispositivos de terminal e dispositivos de pseudo-terminal.
Dispositivos de Terminal vs. Pseudo-Terminais
Aparelho de terminal verdadeiro é um console nativo que permite digitar comandos e ver a saída diretamente. Você pode experimentar isso mudando para um console virtual. Em muitos sistemas, você pode pressionar Ctrl-Alt-F1 para acessar o TTY1. Você verá um prompt de login em um ambiente puramente baseado em texto, sem interface gráfica. Este é um dispositivo de terminal clássico. Para retornar à sua sessão gráfica, você pode tipicamente usar Ctrl-Alt-F7 (a combinação exata de teclas pode variar).
Um pseudo-terminal (PTS), por outro lado, é o que você mais comumente usa. Quando você abre um aplicativo de terminal dentro do seu ambiente de desktop gráfico, você está usando um PTS. Estes emulam um terminal dentro de uma janela. Se você verificar a saída de ps tty para seu shell, verá seu TTY listado como pts/*.
O Papel do Terminal de Controle
A maioria dos processos está vinculada a um terminal de controle. Isso significa que o ciclo de vida do processo está ligado à sessão de terminal que o iniciou. Por exemplo, se você executar um programa como find na sua janela do terminal e depois fechar essa janela, o processo find também será encerrado.
Processos Sem um Terminal de Controle
Alguns processos, conhecidos como daemons, são projetados para serem executados em segundo plano e gerenciar serviços do sistema. Esses processos geralmente são iniciados quando o sistema é inicializado e só são interrompidos quando é desligado.
Para evitar que sejam encerrados acidentalmente, os daemons não estão anexados a um terminal de controle. Quando você aprende como usar ps para examinar esses processos, verá um ponto de interrogação (?) na coluna TTY. Este ? significa que o processo não tem um terminal de controle e está sendo executado independentemente de qualquer sessão de usuário.