Eu tenho uma caixa linux que quando eu faço login com ssh, tanto o pressionamento de tecla Ctrl-C
quanto o envio manual de SIGINT
terminam diretamente a sessão.
λ> ssh root@rhel74
Last login: Sun Mar 18 21:08:02 2018 from 10.84.40.182
rhel74:~ # ^CConnection to rhel74 closed.
λ> ssh root@rhel74
Last login: Sun Mar 18 21:11:38 2018 from 10.84.40.182
rhel74:~ # ps -ef | grep bash
root 132203 132199 0 21:11 pts/0 00:00:00 -bash
root 132246 132203 0 21:11 pts/0 00:00:00 grep --color=auto bash
rhel74:~ # kill -2 132203
Connection to rhel74 closed.
trap
mostra que SIGINT
é manipulado por exit
. E se um shell separado for gerado, SIGINT
funcionará como esperado.
rhel74:~ # trap
trap -- 'exit' SIGINT
trap -- 'exit' SIGTERM
trap -- '' SIGTSTP
trap -- '' SIGTTIN
trap -- '' SIGTTOU
rhel74:~ # bash
rhel74:~ # trap
trap -- '' SIGTSTP
trap -- '' SIGTTIN
trap -- '' SIGTTOU
rhel74:~ # ^C
Mas o que realmente determina os manipuladores de trap padrão para um shell? Como alterar o comportamento que Ctrl-C
encerra na minha sessão ssh?