gnome-terminal에서 Ctrl + C가 작동하지 않습니다


9

Linux 호스트에서 Ctrl+ C가 작동하지 않는 것 같고 작동하도록 진행하는 방법을 모르겠습니다. bash 4.1.5 (1)와 함께 Ubuntu 10.04를 사용하고 그놈 터미널에서 작업하고 있습니다.

이 스크립트가 실행되는 동안 Ctrl+ C를 눌렀을 때 종료되지 않았습니다.

#!/bin/bash
for i in `seq 500`
do
        ps -e > /dev/null
        echo $i
done

2
"작동하지 않는다"는 무슨 뜻입니까? 그 키를 어디에서 눌렀습니까? 무슨 일이 있었을까요? 실제로 무슨 일이 있었습니까?
Gilles 'SO- 악마 그만해'

예를 들어 (실패) NFS의 대답을 기다리고 매달려 프로세스가 자주 중단 될 수 없습니다 - 인터럽트 아닌 특정 커널 레벨의 일이있다 - 어쩌면 당신은 Ctrl-C를 일을하지 않는 것을 생각하는 이유의 자세한 내용을 설명 할 수 있습니다
Soren

답변을 업데이트했습니다. 기본적으로 Ctrl C는 스크립트를 종료하지 않았으므로 Ctrl C를 수행하면 종료되어야한다고 생각합니다.
Ankur Agarwal

않습니다 stty -a출력은 포함 intr=^C? 스크립트를 어떻게 실행합니까?
Stéphane Gimenez

1
질문을 교차 게시하지 마십시오. 요청하려는 사이트를 선택하고 해당 사이트에 맞게 조정하십시오.
nhinkle

답변:


9

이것을 시도하십시오

$ stty sane

문제가 해결되는지 확인하고 intr이 올바르게 설정되어 있는지 확인하십시오.

$ stty -a

당신이이 찾을 경우 intr^ C보다 뭔가 다른 설정되어, 당신은 입력하여 문제를 해결할 수 있습니다

$ stty intr ^v^c

이것은 도움이되지 않았습니다. 방송의 stty -a (따옴표없이) "INTR = ^ C"
Ankur 왈

^ 문자를 입력하거나 Ctrl 키를 눌러야합니까?
Ankur Agarwal

Ctrl 키를 누르기 만하면됩니다 (^는 Ctrl-의 줄임말입니다)
Soren

예를 들어 (실패) NFS의 대답을 기다리고 매달려 프로세스가 자주 중단 될 수 없습니다 - 인터럽트 아닌 특정 커널 레벨의 일이있다 - 어쩌면 당신은 Ctrl-C를 일을하지 않는 것을 생각하는 이유의 자세한 내용을 설명 할 수 있습니다
Soren

내 질문에 더 자세한 내용을 추가했습니다. 기본적으로 Ctrl C는 현재 실행중인 스크립트를 종료하지 않습니다.이 스크립트는 Ctrl C에서 종료 될 것으로 예상됩니다.
Ankur Agarwal

6

gnome-terminal구성 이 손상된 것처럼 보이므로 다음을 사용하여 기본값을 복원 할 수 있습니다.

mv .gconf/apps/gnome-terminal{,-BROKEN}

(효과를 보려면 터미널을 다시 시작해야합니다.)

그 후 모든 것이 정상이면을 수행하십시오 rm -rf .gconf/apps/gnome-terminal-BROKEN.


4

의 기본 설정 gnome-terminalCtrl-CCtrl-V키를 바인딩하여 Windows의 복사 및 붙여 넣기 동작을 에뮬레이트합니다. 그것은 버그가 아닌 기능이 될 것입니다 :)

이를 비활성화하려면 gnome-terminal에서

  1. 로 이동 Menubar -> Edit -> Keyboard Shortcuts
  2. 바로 가기 키 열에서 Ctrl+ C를 클릭 하십시오 New Accelerator....
  3. 키 바인딩을 비활성화 하려면 Backspace또는 Delete키를 누릅니다
  4. Disabled바로 가기 키 열에 나타나는지 확인하십시오 .

이 변경 사항은 모든 그놈 터미널 에 즉시 적용 됩니다 .

팁 : gnome-terminal --show-menubargnome-terminal이 메뉴 막대를 표시하지 않으면 강제로 표시합니다.


3

여기서 추측 할 것입니다. Ctrl-C는 작동하지만 ps -e나머지 스크립트에 비해 실행하는 데 시간이 오래 걸리기 때문에 SIGINT를 "ps"프로세스로 보냅니다. "ps"가 종료되고 스크립트는 루프 코드를 통해 다른 반복으로 바로 선택됩니다.

를 수행 sleep 10가 실행되는 동안, 배시 창에서 제어-C 그것. 작동하는지 확인하십시오. 그렇다면 원래 스크립트를 실행하고 여러 번 control-C하십시오. 조만간 운이 좋을 것이고 스크립트를 해석하는 bash 프로세스는 SIGINT를 얻을 것입니다.


절전 모드 10의 Ctrl C도 작동하지 않습니다.
Ankur Agarwal

2
따라서 gnome-terminal Ctrl C를 사용하면 작동하지만 Ctrl c는 작동하지 않습니다. Ctrl + Shift + c를 수행하면 절전 모드 10을 중단하려면 작동합니다. 그러나 Ctrl + c를 수행하면 작동하지 않습니다. 대소 문자를 구분하는 이유는 무엇입니까?
Ankur Agarwal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.