Control + C não interrompe nenhum processo no Linux. Ele simplesmente exibe o texto ^ C e não faz nada

1

Normalmente no Linux se você apertar ⎈ Controle + C ele envia SIGINT para o programa e dependendo de como o programa manipula, eles geralmente terminam.

No entanto, para mim, nenhum programa é encerrado. Não está funcionando em nada. Todos os lugares onde normalmente termina um programa, simplesmente não funciona. Por exemplo, se eu estiver executando um tail -f em um arquivo de log.

Parece que SIGINT não está sendo enviado. Não sei como ajustar isso ou até mesmo verificar.

Para finalizar um programa, eu tenho que ⎈ Controlar + Z e então manualmente matar o encadeamento.

Eu tentei muitas coisas para que isso funcionasse:

  • diferentes programas de terminal
  • usuários diferentes
  • reiniciando o servidor
  • diferentes shells ( /bin/bash /bin/sh )

Especificações úteis:

  • CENTOS 7 (acessado de uma máquina osx)
  • bash shell
  • usando iterm e terminal
  • gcloud vm

Tenho o prazer de enviar registros ou qualquer informação de depuração solicitada por qualquer pessoa. Mas estou super perplexo.

Informações de depuração:

stty -a  

speed 38400 baud; rows 62; columns 270; 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;  

-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany imaxbel iutf8  
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0  

isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
    
por Kevin Major 04.08.2018 / 05:41

1 resposta

1

OMG, finalmente após 6 semanas, encontrei o problema.

Depurei-o usando trap .

executando trap fornece uma lista de sinais que estão sendo capturados

trap -- '' SIGINT  
trap -- '' SIGQUIT  
trap -- '' SIGTSTP  
trap -- '' SIGTTIN  
trap -- '' SIGTTOU  

Eu encontrei o SIGINT nessa lista, então algo estava fazendo com que o SIGINT fosse adicionado à lista de armadilhas de coisas que estão sendo ignoradas essencialmente. Depois de algumas escavações, algumas bibliotecas ruby carregadas com rvm no meu perfil bash estão mexendo com trapping.

De qualquer forma, para corrigir, eu adicionei: trap - INT

até o final do meu perfil bash, depois que a biblioteca do ruby é preenchida e tudo fica bem no capô.

Yay!

    
por 07.08.2018 / 06:42