Tem Archlinux64
em VirtualBox
.
Se eu declarar uma armadilha SIGINT assim:
trap 'echo x' INT
dentro de uma sessão ssh
(executando bash
) e pressionando Ctrl + C várias vezes, apenas algumas vezes algo aparece no terminal. Aqui está um exemplo mais complexo. Depois de pressionar Ctrl-c 21 vezes:
[il@vmarch ~]$ n=0; trap 'echo " $n'\’'th INT"; n=$((n+1))' INT
[il@vmarch ~]$ ^C 0’th INT
[il@vmarch ~]$ ^C 7’th INT
[il@vmarch ~]$ ^C 8’th INT
[il@vmarch ~]$ ^C 9’th INT
[il@vmarch ~]$ ^C 18’th INT
[il@vmarch ~]$ ^C 21’th INT
Pressionar apenas Ctrl + C tem esse efeito; se eu enviar SIGINT
explicitamente (via kill
), recebo todas as mensagens que estou esperando. Reprodutível em vários emuladores de terminal. Nunca ocorre no console de texto ( /dev/tty1
). Sintomas semelhantes em zsh
e dash
: em zsh, os resultados são praticamente os mesmos. No traço, a armadilha não funciona, mas sem ela, a nova linha e o prompt são descartados também.
Não fazer nada por 5-10 segundos antes de pressionar Ctrl + C aumenta a chance de os dados serem descartados.
$ uname -a
Linux vmarch.lan 4.0.4-2-ARCH #1 SMP PREEMPT Fri May 22 03:05:23 UTC 2015 x86_64 GNU/Linux