• xvfb 初步探究


    有时候我们不关注程序是否有界面(比如自动化测试),只要程序在运行就可以了

    很感谢 xvfb 这个工具给我们提供了相关的功能

    比如在没有 X server 的机器上运行 gedit, 可以用下面的命令

    xvfb-run --auto-servernum --server-args="-screen 0 1280x760x24"  gedit


    xvfb 这个工具相当于一个wrapper, 给应用程序提供虚拟的 X server

    用 ps auxf 观察进程的结构,可以发现 xvfb-run 首先创建了 Xvfb:103 这个 daemon 子进程,而后再运行 gedit

    ...

               \_ /bin/sh /usr/bin/xvfb-run --auto-servernum --server-args=-screen 0 1280x760x24 gedit
                   \_ Xvfb :103 -screen 0 1280x760x24 -nolisten tcp
                   \_ gedit


    如果,自己编写一个脚本 1.sh, 内容是显示 $DISPLAY 变量

    ---- 1.sh ---
    echo $DISPLAY

    再用下面的命令运行

    xvfb-run --auto-servernum --server-args="-screen 0 1280x760x24"  ./1.sh

    输出是 

    :103


    而查看进程,原来 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, 可以看到提供服务的 unix socket

    ...
    unix  2      [ ACC ]     STREAM     LISTENING     2060030  /tmp/.X11-unix/X103

    ...


    总结:

    xvfb  是通过提供 X server deamon 和 设置程序运行的环境变量  DISPLAY 来提供程序运行的环境


  • 相关阅读:
    HttpURLconnection的介绍
    HttpClient4.3教程 第三章 Http状态管理
    HttpClient4.3教程 第二章 连接管理
    HttpClient 4.3教程 第一章 基本概念
    HttpClient 4.3教程-前言
    数据结构
    数据结构
    HashMap底层源码剖析
    防止XSS 攻击集成springboot
    C——Network Saboteur (POJ2531)
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3310732.html
Copyright © 2020-2023  润新知