Como iniciar o 'Xephyr' sem 'dormir'

3

O objetivo é lançar o Xephyr em um script. A abordagem mais popular é esta:

Xephyr :4 &
sleep 1  # or sleep 2
launch_your_program_here

Vamos ver o que acontece aqui. Primeiro, infelizmente, o Xephyr não pode se daemonizar sozinho, então temos que lançá-lo de forma assíncrona ( & ). Então, não sabemos quando é inicializado, então damos 1-2 segundos para inicializar. Isso parece hacky. Como fazer isso de maneira mais rápida e confiável?

    
por VasyaNovikov 29.09.2016 / 18:45

2 respostas

3

xinit faz esse trabalho. Você pode criar um arquivo your_xinitrc . Os comandos em your_xinitrc serão executados depois que o Xephyr for inicializado.

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

O servidor X a ser executado deve ser fornecido com um caminho absoluto, se não for o próprio X. Veja man xinit para detalhes. Depois que todos os comandos em your_xinitrc forem finalizados, o xinit terminará o Xephyr.

    
por 18.10.2016 / 20:21
3

Uma possível solução pode estar usando

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

A segunda linha irá bloquear a si mesma esperando por mudanças no sistema de arquivos em /tmp/.X11-unix/ , que é o que acontece quando o Xephyr termina de se inicializar.

    
por 29.09.2016 / 18:45

Tags