Procurei respostas e até agora não encontrei nada para responder à minha pergunta. Atualmente, estou efetuando login no meu servidor Ubuntu e, ao executar um processo, não consigo executar nenhuma das interrupções nele. Aqui está o meu stty -a:
user@Ubuntu1:~$ stty -a
speed 38400 baud; rows 93; columns 200; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
flush = ^O; min = 1; time = 0;
Não tenho nada no meu .bashrc que mude as interrupções.
É o mesmo para todos os usuários, incluindo o root. Também tentei fazer login em locais diferentes usando terminais diferentes e sempre que esse mesmo resultado aparecer. Eu usei o ssh e o ssh -X para fazer login.
Edit: Localmente todas as minhas interrupções funcionam bem.
Atualização: Ainda estou procurando uma resposta. Meu amigo tem exatamente o mesmo problema. A questão parece muito grande: ao fazer login (no PC, Mac, Linux), o teclado não apanha essas teclas (mesmo que corretamente mapeadas).
Ctrl+C
enquanto executa outro processo (por exemplo cat
)? Talvez seja esse processo que ignora Ctrl+C
. Ou você quer dizer que localmente no servidor Ubuntu, esse processo específico responde Ctrl+C
, nesse caso, em que terminal você tentou? Que tal uma screen
sessão?
kill -s 2
(observe o -s 2
que é SIGINT
(o sinal normalmente enviado quando você pressiona Ctrl + C, o padrão kill
é SIGTERM
))), então o comando não está ignorando a interrupção. Outra coisa está pegando. Quando você executa isso localmente e funciona, você está dizendo que funciona usando o mesmo terminal na máquina cliente para executar algo localmente ou executando um emulador de terminal localmente na máquina servidor? Gostaria de saber se você está usando algum emulador que está tentando imitar Ctrl + C do mundo Windows ...
Ctrl+V
e baterCtrl+C
? Você já tentou matar o processokill -s 2 <pid_of_process>
? Isso deve ser igual ao envio do sinal SIGINT para o processo. Verifique as configurações principais do emulador de terminal.