Isso está documentado na % man_de% página na seção 4 :
The file /dev/tty is a character file with major number 5 and minor number 0, usually of mode 0666 and owner.group root.tty. It is a synonym for the controlling terminal of a process, if any.
In addition to the
ioctl(2)requests supported by the device that tty refers to, theioctl(2)requestTIOCNOTTYis supported.
TIOCNOTTYDetach the calling process from its controlling terminal.
If the process is the session leader, then
SIGHUPandSIGCONTsignals are sent to the foreground process group and all processes in the current session lose their controlling tty.This
ioctl(2)call works only on file descriptors connected to /dev/tty. It is used by daemon processes when they are invoked by a user at a terminal. The process attempts to open /dev/tty. If the open succeeds, it detaches itself from the terminal by usingTIOCNOTTY, while if the open fails, it is obviously not attached to a terminal and does not need to detach itself.
Isso explica em parte porque tty não é um link simbólico para o terminal de controle: ele suporta um /dev/tty adicional, e pode não haver um terminal de controle (mas um processo pode sempre tentar acessar ioctl ) .
/dev/tty pode representar diferentes terminais de controle, sem ser um link, porque o driver que o implementa determina qual é o terminal de controle do processo de chamada, se houver.
Você pode pensar nisso como /dev/tty sendo o terminal de controle e, portanto, oferecendo funcionalidade que só faz sentido para um terminal de controle, enquanto /dev/tty etc. são terminais simples, um dos quais pode ser o terminal de controle para um determinado processo.