Xvfb - 启动或将窗口管理器附加到xvfb

时间:2016-12-23 09:17:20

标签: xvfb window-managers xserver

出于测试目的,我使用了Xvfb。 今天,我想用wmctrl命令做一些测试。我在python中做了一些测试:

    display = ":99"
    pXvfb = subprocess.Popen(["Xvfb", display, "-screen", "0", "1024x768x24"])

    # wait that xvfb is up
    time.sleep(1)

    os.environ["DISPLAY"] = display

    p = subprocess.Popen( ["wmctrl", "-l" ] )
    p.wait()


    pXvfb.terminate()

在这个测试中,wmctrl说:

    Cannot get client list properties. 
(_NET_CLIENT_LIST or _WIN_CLIENT_LIST)

我认为,这是正常的,因为我没有任何窗口管理器附加到我的Xvfb。

如何启动Windows管理器(Enlighenment should be good for my case)以仅管理Xvfb?

1 个答案:

答案 0 :(得分:0)

经过几天的工作,我可以自己回答。解决方案尽可能简单:只需使用变量DISPLAY设置启动Windows管理器即可。所以在我的python脚本中,我只是这样做:

display = ":99"
pXvfb = subprocess.Popen(["Xvfb", display, "-screen", "0", "1024x768x24"])

# wait that xvfb is up
time.sleep(1)

os.environ["DISPLAY"] = display

# start windows manager
pWM = subprocess.Popen( ["/usr/bin/enlightenment_start", ]  )

p = subprocess.Popen( ["wmctrl", "-l" ] )
p.wait()


pXvfb.terminate()