목표는 스크립트에서 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
/tmp/.X11-unix/
두 번째 줄은 Xephyr가 자체 초기화를 완료할 때 발생하는 파일 시스템 변경을 기다리지 않도록 합니다 .