잠들지 않고 Xephyr를 시작하는 방법

잠들지 않고 Xephyr를 시작하는 방법

목표는 스크립트에서 Xepyr을 실행하는 것입니다. 가장 널리 사용되는 접근 방식은 다음과 같습니다.

Xephyr :4 &
sleep 1  # or sleep 2
launch_your_program_here

여기서 무슨 일이 일어나는지 봅시다. 첫째, 불행하게도 Xephyr는 스스로 데몬화할 수 없으므로 비동기식으로 실행해야 합니다( &). 그러면 언제 초기화될지 모르기 때문에 1~2초 정도 초기화 시간을 줍니다. 이건 해키한 느낌이에요. 더 빠르고 안정적으로 수행하는 방법은 무엇입니까?

답변1

xinit가 이 작업을 수행합니다. 파일을 생성할 수 있습니다 your_xinitrc. Xephyr이 초기화된 후에 의 명령이 your_xinitrc실행됩니다.

xinit your_xinitrc -- /usr/bin/Xephyr :4

실행할 X 서버가 X 자체가 아닌 경우 절대 경로를 제공해야 합니다. 자세한 내용은 참조하세요 man xinit. 모든 명령이 your_xinitrc종료된 후 xinit는 Xephyr을 종료합니다.

답변2

가능한 해결책은 다음과 같습니다.

Xephyr :4
inotifywait --timeout 9 /tmp/.X11-unix/
launch_your_program_here

두 번째 줄은 Xephyr가 자체 초기화를 완료할 때 발생하는 파일 시스템 변경을 기다리면서 자체적으로 차단합니다 /tmp/.X11-unix/.

관련 정보