我听说有一种方法可以在没有显示管理器的情况下通过图形界面启动程序-直接从终端启动。这是真的吗?如果是这样,我该怎么做?
xinit
或startx
?
我听说有一种方法可以在没有显示管理器的情况下通过图形界面启动程序-直接从终端启动。这是真的吗?如果是这样,我该怎么做?
xinit
或startx
?
Answers:
这是无头运行GUI应用程序的基本方法,并带有一种(vnc
)连接方法。与家人一起在RHEL7
和工作Centos 7
。并从位于https://github.com/xeor/dockerfiles/tree/master/crashplan/的用于Crashplan的我自己的Docker映像中删除(请参阅Dockerfile
进行设置和init/setup
启动。
# Needed environment variables
export DISPLAY=:99.0
export SCREEN_WIDTH=1200
export SCREEN_HEIGHT=960
export SCREEN_DEPTH=24
export GEOMETRY="${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH}"
# Needed packages
yum install -y xorg-x11-server-Xvfb x11vnc gtk2 xorg-x11-fonts-*
# Set a password (if variable vncpass is sat, else its `secret`)
mkdir -p ~/.vnc && x11vnc -storepasswd ${vncpass:-secret} ~/.vnc/passwd
# Start up the fake display and run the application you want (the `java ...` part)
xvfb-run --server-args="$DISPLAY -screen 0 $GEOMETRY -ac +extension RANDR" java .... > log/ui_output.log 2> log/ui_error.log &
# Wait for the app to start, or else, the vnc server will die before starting
sleep 5
# vnc itself
x11vnc -forever -usepw -shared -rfbport 5900 -display $DISPLAY
现在,您应该能够连接到服务器:5900并查看该应用程序。
是。只需执行显示管理器的相同操作即可。除了图形登录屏幕(在这种情况下您不需要)之外,显示管理器仅做两件事:
您可以使用类似的工具startx
通过控制台登录启动X11。它将启动Xorg,然后启动~/.xinitrc
文件中列出的客户端。
例如,.xinitrc文件可以具有startkde
或gnome-session
,也可以列出各个组件(窗口管理器,面板/任务栏,桌面...)。
(请注意,xinit
和之间有一些区别startx
–通常应使用后者,因为某些发行版具有一些简单的xinit将忽略的重要配置,即xserverrc
脚本。)
使用Wayland,台式机和面板是“合成器”的集成部分,因此整个界面只需一步即可启动,而无需其他工具。例如,您可以使用运行weston
或启动GNOME gnome-session --session=gnome-wayland
。
您可以使用ssh X转发(ssh -X;也可能需要在服务器配置中启用)来启动X应用程序,前提是您具有本地 X显示。
该应用程序将在无头系统上运行时在本地启动并显示。您需要在无头系统上安装X才能拥有正确的库,而这可能不适用于更现代的GNOME应用程序。
$DISPLAY
即使您的外壳是远程外壳(ssh或控制台),您也可以用来在附加的X显示器上启动应用程序。如果您是root用户,但不在X显示屏上登录的人,则可以覆盖xauth
安全性,并无论如何在其显示屏上弹出一个窗口。如果您在不同的显示器上有两个不同的X显示服务器,这也可以使用。
另一个海报提到了VNC。我也为此目的使用了NX,我更喜欢它。