如何在不休眠的情况下启动 Xephyr

如何在不休眠的情况下启动 Xephyr

目标是在脚本中启动 Xephyr。最流行的方法是这样的:

Xephyr :4 &
sleep 1  # or sleep 2
launch_your_program_here

让我们看看这里会发生什么。首先,不幸的是,Xephyr 无法自行守护,因此我们必须异步启动它 ( &)。那么我们不知道它什么时候初始化,所以我们给它1-2秒的时间来初始化。这感觉很hacky。如何更快、更可靠地做到这一点?

答案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 完成自身初始化时发生的情况。

相关内容