Как запустить Xephyr без спящего режима

Как запустить Xephyr без спящего режима

Цель — запустить Xephyr в скрипте. Самый популярный подход:

Xephyr :4 &
sleep 1  # or sleep 2
launch_your_program_here

Давайте посмотрим, что здесь происходит. Во-первых, к сожалению, Xephyr не может демонизировать себя, поэтому нам приходится запускать его асинхронно ( &). Затем мы не знаем, когда он инициализируется, поэтому мы даем ему 1-2 секунды на инициализацию. Это кажется хакерством. Как сделать это быстрее и надежнее?

решение1

xinit выполняет эту работу. Вы можете создать файл your_xinitrc. Команды в your_xinitrcбудут выполнены после инициализации Xephyr.

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 завершает инициализацию.

Связанный контент