运行 一个没有显示在 Ubuntu 中的 Gui 程序

Running a program with Gui without displaying in Ubuntu

我有一台服务器 运行ning Ubuntu 14.04。我想运行一个3d建模软件就可以了。我将发送一些参数,软件将根据这些参数自动生成模型并将数据发回。在整个过程中,我不需要与软件的 Gui 交互,但软件会在调用时启动 GUI。

有没有办法运行不需要显示器。

我已经尝试过 X11 转发,但这只会在我的本地计算机上启动 Gui。我需要一种方法,让应用程序 运行 完全在服务器本身上运行,而不需要显示。

您需要 Xvfb 来虚拟化 X11 服务器,所以首先要执行以下操作:

apt-get install xvfb 

您可能还需要带有 xvfb 的这些软件包:

sudo apt-get install x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps

然后您可以 运行 您的应用程序,无需任何 GUI:

Xvfb :19 -screen 0 1024x768x16 &
export DISPLAY=:19
myapp &

我使用带有轻量级 window 管理器的 Xvnc 服务器来实现类似的功能。这是我使用过的设置。在我的例子中,我正在 运行 宁一个 Java 程序,所以最后一步可能与你的情况不同。

安装 Xvnc

Xvnc 是一个虚拟帧缓冲区,可以代替真实显示器(以及鼠标和键盘)使用。它还包含允许连接到机器并查看其显示内容的 VNC 服务器。

sudo apt-get install vnc4server

安装 IceWM

IceWM 是我尝试过的轻量级和最稳定的 window 管理器。 默认选项无法 运行 我的应用程序正确,但它可能对你来说已经足够了。这是我尝试过的其他一些:

  • matchbox-window-经理遇到了我需要的助记符问题
  • fluxbox 的一些对话框有问题 windows

使用 apt-get 安装 IceWM 和主题(不确定是否需要主题):

sudo apt-get install icewm icewm-themes

Xvnc 必须配置为 运行 这个管理器。更改(如果不存在则创建文件)主目录 ~/.vnc/xstartup: 上的配置文件。同样,这取决于您的需要。

#!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
icewm &

安装您的应用程序使用的必需库

Java 需要一些我认为是 X 服务器附带的库。这些可以通过以下命令轻松安装。注意:其中一些库可能是在尝试不同的 window 管理器时安装的,但我事先手动安装了它们。

sudo apt-get install libxrender1
sudo apt-get install libxtst6
sudo apt-get install libxi6 libgconf-2-4

运行安装您的应用程序

首先给vncserver设置一个密码。该命令将要求输入密码并验证密码。

vncpasswd

真正的显示器在 linux 中由一个数字标识,这个数字通过 DISPLAY env 变量提供给应用程序。使用这些命令设置显示和 vncserver:

vncserver :10 -depth 16 -geometry 1600x900

depth 和 geometry 是显示器的颜色深度和分辨率参数。

设置显示 属性:

export DISPLAY=:10

运行 应用程序。如果您想查看它,您现在可以连接到 vnc。