다음과 같이 현재 X 세션에서 다른 X 세션을 시작했습니다.
xinit xterm -- :128
X 세션은 display 에서 시작되어 실행되며 모든 것이 정상입니다 :128
.xterm
그러나 화면 :0
(기본값)으로 다시 전환하고 screencap
새 디스플레이를 사용해 보았습니다.
$ xwd -root -screen -out screencap.xwd -display :128
결과 파일은 커다란 검정색 직사각형입니다. 나는 또한 imagemagick을 사용해 보았지만 import
아무 소용이 없었습니다. 무엇이 잘못되었나요?
답변1
좋다scrot
이를 수행할 수 있으며 테스트되었습니다.
xinit thunar -- :128
DISPLAY=:128 scrot
나에게 올바른 스크린샷을 제공했습니다.
(그러나 불행히도 scrot은 한동안 유지되지 않았습니다)
답변2
tty가 포커스를 잃으면 x는 CPU 시간과 RAM을 절약하기 위해 빈 화면을 표시하고 다시 그리기를 중지합니다. 이 기능을 비활성화할 수 있는 방법은 없는 것 같습니다.
Xvfb
, "X Virtual Framebuffer"는 설계 및 목적의 일부로 이러한 동작을 포함하지 않는 특수 구현입니다.
새로운 "일반" xsession을 시작하는 대신 가상 프레임 버퍼에서 클라이언트 소프트웨어를 실행합니다.
xvfb-run <client software> --server-args="-screen 0 [width]x[height]x[bitdepth]"
그리고 다음과 같이 스크린샷을 찍으세요.
xwd -root -d :99 # (the default for xvfb)
디스플레이가 단말기에 묶여 있지 않기 때문에 사용자가 디스플레이를 보기 어려울 수 있다는 점 참고하세요.