如何在不休眠的情況下啟動 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 完成自身初始化時發生的情況。

相關內容