xvfb 初步探究

轉(zhuǎn)載:http://blog.csdn.net/span76/article/details/11473315

有時(shí)候我們不關(guān)注程序是否有界面(比如自動(dòng)化測(cè)試),只要程序在運(yùn)行就可以了
很感謝 xvfb 這個(gè)工具給我們提供了相關(guān)的功能
比如在沒有 X server 的機(jī)器上運(yùn)行 gedit, 可以用下面的命令
xvfb-run --auto-servernum --server-args="-screen 0 1280x760x24" gedit

xvfb 這個(gè)工具相當(dāng)于一個(gè)wrapper, 給應(yīng)用程序提供虛擬的 X server
用 ps auxf 觀察進(jìn)程的結(jié)構(gòu),可以發(fā)現(xiàn) xvfb-run 首先創(chuàng)建了 Xvfb:103 這個(gè) daemon 子進(jìn)程,而后再運(yùn)行 gedit
...
_ /bin/sh /usr/bin/xvfb-run --auto-servernum --server-args=-screen 0 1280x760x24 gedit _ Xvfb :103 -screen 0 1280x760x24 -nolisten tcp _ gedit

如果,自己編寫一個(gè)腳本 1.sh, 內(nèi)容是顯示 $DISPLAY 變量
---- 1.sh ---echo $DISPLAY
再用下面的命令運(yùn)行
xvfb-run --auto-servernum --server-args="-screen 0 1280x760x24" ./1.sh
輸出是
:103

而查看進(jìn)程,原來 deamon 提供 DISPLAY :103
_ /bin/sh /usr/bin/xvfb-run --auto-servernum --server-args=-screen 0 1280x760x24 ./1.sh _ Xvfb :103 -screen 0 1280x760x24 -nolisten tcp
再用命令查看 netstat -ln, 可以看到提供服務(wù)的 unix socket
...unix 2 [ ACC ] STREAM LISTENING 2060030 /tmp/.X11-unix/X103
...

總結(jié):
xvfb 是通過提供一個(gè)類似 X server 守護(hù)進(jìn)程 和 設(shè)置程序運(yùn)行的環(huán)境變量 DISPLAY 來提供程序運(yùn)行的環(huán)境

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,992評(píng)論 19 139
  • 1.創(chuàng)建文件夾 !/bin/sh mkdir -m 777 "%%1" 2.創(chuàng)建文件 !/bin/sh touch...
    BigJeffWang閱讀 10,193評(píng)論 3 53
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,778評(píng)論 18 399
  • 文/柳青陵 我不能騙自己,我是多么想留在他的身邊,哪怕是只能這樣痛苦地看著他,也好過相隔天涯,再也見不到他。 二、...
    柳青陵閱讀 1,285評(píng)論 3 4