![멈출 수 없는 응용 프로그램에서 키보드와 마우스를 해제하는 방법은 무엇입니까? [복사]](https://linux55.com/image/146205/%EB%A9%88%EC%B6%9C%20%EC%88%98%20%EC%97%86%EB%8A%94%20%EC%9D%91%EC%9A%A9%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%97%90%EC%84%9C%20%ED%82%A4%EB%B3%B4%EB%93%9C%EC%99%80%20%EB%A7%88%EC%9A%B0%EC%8A%A4%EB%A5%BC%20%ED%95%B4%EC%A0%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
키보드와 마우스를 일반 작업 모드(예: 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
으로 일반이 작동하지 않을 때 작동합니다.