Ubuntu 16.04.04 LTS 서버가 있습니다. 일을 좀 tty1
하고 점심시간을 가졌습니다. 그 사이에 데스크탑 모니터가 잠자기 상태가 되었습니다. 돌아와서 을 누르면 Esc화면이 깨어나서 중단했던 바로 그 지점에 프롬프트가 표시되었습니다 tty1
. 그런데 입력을 시작했을 때 입력한 문자가 프롬프트에 표시되지 않는 것을 발견했습니다. 키보드가 작동하지 않는 것 같은데 키를 누를 때마다 화면에 기존 텍스트가 깜박이는 것을 볼 수 있습니다. 그래서 (A)물리적인 키보드 연결 문제는 아니고, (B)잠깐 깜박이는 현상으로 인해 키가 어딘가에 등록되는 것 같아요.
다시 확인하기 위해 키를 누르고 CtrlAltF2입력 tty2
(사용자 이름과 비밀번호)을 시작했는데 키보드에서 누른 문자가 예상대로 표시되었습니다. 그래서 내 키보드는 tty2
(and tty3
등 ) tty4
에서 제대로 작동하는 것 같습니다.
그래서 다시 가서 tty1
열쇠가 보이지 않는 것을 발견했습니다. tty1
다른 터미널로 이동하는 기능 키 외에는 어떤 키 조합도 작동하지 않는 것 같습니다.
키 입력을 에 표시하는 방법을 모르기 때문에 tty1
시도했지만 를 입력 shutdown
할 수 없습니다 . 그래서 가서 들어갔습니다 . 에서 이 명령은 컴퓨터가 종료된 시기를 등록하고 나타냅니다. 종료할 시간이 되면 다른 프로세스가 진행 중이라는 메시지가 표시됩니다(정확한 문구는 기억나지 않습니다). 종료를 종료하려고 시도했지만 중단되었습니다. 그래서 거기서 문을 닫으려고 하다가 또 막혔어요. 그래서 결국 컴퓨터의 전원 버튼을 몇 초 동안 눌렀다가 이상한 방식으로 컴퓨터를 종료하게 되었습니다. 컴퓨터를 다시 시작하자 문제가 사라지고 모든 것이 정상적으로 작동하는 것 같았습니다.shutdown
tty1
tty2
shutdown
tty2
CtrlCtty3
의 키가 표시되지 않지만 화면이 깜박이는 이유는 무엇입니까 tty1
? 이것을 이해하고 싶습니다.
답변1
문자 기반 콘솔( tty1
등 tty2
)은 터미널 에뮬레이터입니다. 직렬 포트에 연결된 터미널의 작동을 모방하고 일부 Linux 관련 확장이 있습니다. 에뮬레이션에는 XON/XOFF 핸드셰이크에 대한 지원이 포함되어 있으며 이러한 핸드셰이크에 대한 문자는 실수로라도 키보드에서 쉽게 생성될 수 있습니다.
Control-S를 누르면 XOFF 제어 문자가 전송됩니다. 이 문자는 Control-Q(XON 문자라고도 함)를 누를 때까지 터미널에 대한 출력을 중지합니다. 입력은 실제로 출력과 함께 중지되지 않습니다. XOFF가 적용되는 동안 아무 것도 입력하면 Ctrl-Q를 누르자마자 해당 문자가 출력됩니다.
stty
이 기능은 명령(특히 ixon
및 플래그 사용)을 사용하여 제어할 수 있습니다 ixany
. 기능을 완전히 비활성화하려면 를 사용하여 stty -ixon
다시 활성화하고 를 사용하십시오 stty ixon
. 기능이 활성화된 동안 사용하면 stty ixany
모든 키가 출력을 복원하며 stty -ixany
Ctrl-Q로만 복원할 수 있습니다.
이 ixoff
플래그는 반대 방향으로 전송하는 데 사용됩니다. 서버 측 입력 버퍼가 오버플로될 위험이 있는 경우 서버는 이전 입력이 처리될 때까지 전송을 중지하도록 터미널에 Ctrl-S를 보냅니다. Linux 콘솔에서는 서버와 터미널이 동일한 물리적 프로세서를 공유하므로 이는 그다지 유용하지 않습니다. 하지만 ixon
플래그를 사용하여 텍스트를 읽기 위해 스크롤을 일시 중지할 수 있기 때문에 여전히 유용합니다.
ixon -ixoff -ixany
Linux 콘솔의 기본 상태 는 Control-S가 콘솔로의 출력을 중지할 수 있고 Control-Q만이 출력을 재개할 수 있다는 것 같습니다 .