멈출 수 없는 응용 프로그램에서 키보드와 마우스를 해제하는 방법은 무엇입니까? [복사]

멈출 수 없는 응용 프로그램에서 키보드와 마우스를 해제하는 방법은 무엇입니까? [복사]

키보드와 마우스를 일반 작업 모드(예: QEMU)로 사용하는 X 응용 프로그램이 있는데 어딘가의 버그로 인해 매우 심하게 멈추는 경우(예: 디스크 절전 모드에 갇히는 경우)가 있다고 가정해 보겠습니다. 일반적으로 원격 터미널에서 응용 프로그램을 종료 kill(1)하지만 응용 프로그램이 디스크 절전 모드에 있으면 실제로 종료할 수 없습니다. 유틸리티를 통해 X 서버에 대한 응용 프로그램의 연결을 끊을 수 있지만 이번에는 마우스가 잡혀서 실행되지 않기 xkill때문에 그렇게 할 수 없습니다 .xkill

따라서 이 클라이언트를 희생할 의향이 있지만 운영 체제를 통해 클라이언트를 종료할 수 없는 경우 X 클라이언트가 선점하지 않도록 키보드와 마우스를 어떻게 해제할 수 있습니까?

답변1

가장 잘 알려진 사용 모드는 "클릭하여 종료"이지만 X 서버와의 연결을 끊으려는 클라이언트의 창 ID를 제공하는 xkill옵션이 있습니다 . -id그런 다음 원격 터미널/VT에서 X 세션에 액세스할 수 있는 경우 xprop다른 방법을 사용하여 ID를 가져와 xkill.

현재 활성 창이 키와 마우스를 선점하는 X 클라이언트에 속한다고 가정합니다. 다음 명령은 X 서버에 대한 클라이언트 연결을 종료하여 키보드와 마우스를 해제합니다.

winid=$(xprop -root _NET_ACTIVE_WINDOW | cut -d# -f2)
xkill -id $winid

이는 QEMU가 디스크 절전 모드에 있는 동안 그랩을 제거하려고 할 때 실제로 효과가 있었습니다.

답변2

X 서버에서 키보드를 해제하는 표준 SysRq+ 트릭을 시도하거나 현재 콘솔의 + + 조합을 변경하여 터미널을 실행하고 문제가 되는 프로그램을 종료할 수 있습니다.RCtrlAlt1-6

답변3

kill -9일반적 kill으로 일반이 작동하지 않을 때 작동합니다.

관련 정보