키보드와 마우스를 일반 작업 모드(예: 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
으로 일반이 작동하지 않을 때 작동합니다.