我有一台运行Ubuntu 14.04的服务器。我想在上面运行一个3D建模软件。我将发送一些参数,软件将根据这些参数自动生成模型并将数据发回。在整个过程中,我不需要与软件的Gui进行交互,但软件会在调用时启动GUI。
有没有办法在不需要显示的情况下运行它。
我尝试过X11转发,但这只是在我的本地机器上启动了Gui。我需要一种方法,让应用程序在服务器上完全运行,无需显示。
答案 0 :(得分:7)
您需要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 &
答案 1 :(得分:-1)
我使用了一个带有轻量级窗口管理器的Xvnc服务器来实现类似的功能。这是我使用过的设置。在我的情况下,我正在运行Java程序,因此最后一步可能与您的情况不同。
Xvnc是一个虚拟帧缓冲区,可用于代替实际显示(以及鼠标和键盘)。它还包含VNC服务器,允许连接到机器并查看它显示的内容。
sudo apt-get install vnc4server
IceWM是轻量级的,也是我尝试过的最稳定的窗口管理器。 默认选项无法正常运行我的应用,但对您来说可能已经足够了。以下是我尝试过的其他一些内容:
使用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服务器一起提供的库。可以通过以下命令轻松安装它们。注意:尝试使用不同的窗口管理器时可能已安装了其中一些库,但我事先手动安装了它们。
sudo apt-get install libxrender1
sudo apt-get install libxtst6
sudo apt-get install libxi6 libgconf-2-4
首先为vncserver设置密码。该命令将要求输入密码并验证密码。
vncpasswd
真实的显示在linux中用数字标识,这个数字通过DISPLAY env变量提供给应用程序。使用以下命令设置display和vncserver:
vncserver :10 -depth 16 -geometry 1600x900
深度和几何图形是显示器的颜色深度和分辨率参数。
设置DISPLAY属性:
export DISPLAY=:10
运行该应用。现在,如果要查看,可以连接到vnc。