Control+C는 Linux에서 어떤 프로세스도 중지하지 않습니다. ^C 텍스트만 표시하고 아무 작업도 수행하지 않습니다.

Control+C는 Linux에서 어떤 프로세스도 중지하지 않습니다. ^C 텍스트만 표시하고 아무 작업도 수행하지 않습니다.

⎈ Control보통 리눅스에서는 +를 누르면 프로그램으로 C전송되는데 , 프로그램이 어떻게 처리하느냐에 따라 종료되는 경우가 많습니다.SIGINT

그러나 나에게는 어떤 프로그램도 종료되지 않습니다. 그것은 아무것도 작동하지 않습니다. 일반적으로 프로그램을 종료하는 모든 곳에서는 작동하지 않습니다. 예를 들어 tail -f로그 파일을 실행 중인 경우입니다 .

전송되지 않는 것 같습니다 SIGINT. 조정하는 방법이나 확인하는 방법도 모르겠습니다.

프로그램을 종료하려면 ⎈ Control+ Z그런 다음 스레드를 수동으로 종료해야 합니다.

나는 그것을 작동시키기 위해 많은 것을 시도했습니다.

  • 다양한 터미널 프로그램
  • 다른 사용자
  • 서버를 다시 시작하세요
  • 다른 껍질( /bin/bash /bin/sh)

유용한 사양:

  • CENTOS 7(osx 머신에서 액세스)
  • 배쉬 쉘
  • iterm 및 터미널 사용
  • gcloud 가상 머신

누군가 요청하는 로그나 디버깅 정보를 기꺼이 보내드리겠습니다. 하지만 나는 매우 혼란스러워요.

디버그 정보:

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

답변1

세상에, 6주 후에 마침내 문제를 알아냈습니다.

디버깅에 사용했습니다 trap.

달리면 trap포착된 신호 목록이 제공됩니다.

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

해당 목록에서 SIGINT를 찾았으므로 어떤 이유로 기본적으로 무시되는 트랩 목록에 SIGINT가 추가되었습니다. 좀 더 조사한 후에 내 bash 프로필에서 rvm을 사용하여 로드된 일부 Ruby 라이브러리가 캡처를 엉망으로 만들고 있음을 발견했습니다.

어쨌든 문제를 해결하기 위해 다음을 추가했습니다.
trap - INT

내 bash 구성 파일 끝까지, Ruby 라이브러리의 내용 이후에는 모든 것이 정상입니다.

응!

관련 정보