Pressionar uma tecla e um sinal são duas maneiras diferentes de se comunicar com um programa. Se há um sinal que é equivalente a um pressionamento de tecla para um determinado programa, é porque o autor do programa o projetou dessa maneira.
Existem algumas chaves que o próprio terminal traduz em um sinal, como Ctrl + C para SIGINT. O programa pode alterar as configurações do terminal para capturar esses pressionamentos de teclas em vez de permitir que o terminal os traduza para um sinal. O mesmo mecanismo de terminal permite que uma chave (normalmente Ctrl + D ) seja traduzida para o final da entrada (somente quando é pressionada no início de uma linha). Isso não é um sinal: significa que o programa recebe uma indicação de fim de arquivo quando tenta ler a entrada do terminal.
Quando um terminal desaparece, o kernel envia o sinal SIGHUP para o programa de primeiro plano em execução no terminal, se houver algum (e se for um shell, o shell reenviará o sinal para o seu trabalho em primeiro plano). HUP vem de “(modem) desligamento”, e no mundo moderno se aplica em casos como o fechamento de uma janela de terminal em uma GUI. Muitos programas captam este sinal e desligam com segurança, portanto, se for mais conveniente enviar um sinal do que enviar dados, tente se isso funcionar no seu programa.
Se você precisar enviar informações, a maneira mais fácil é executar o programa na Tela e usar screen -X
como enviar entrada para a sessão de tela ( exemplo ).