使用不带显示管理器的GUI启动程序


9

我听说有一种方法可以在没有显示管理器的情况下通过图形界面启动程序-直接从终端启动。这是真的吗?如果是这样,我该怎么做?


您需要与GUI交互吗?
Daniel B

@DanielB耶,大概

1
您可以不使用显示管理器来运行它们,但是您确实需要一个正在运行的X会话。您正在使用什么发行版?您是否安装了X服务器?您可以运行xinitstartx
terdon 2015年

@terdon是的,我当前正在运行lmint,但问题更多是针对常识(不是面向发行版的)。
2015年

Answers:


5

您可以不使用显示管理器来运行它们,但是您确实需要一个正在运行的X会话。详细信息将取决于您的分布,但是您应该能够通过运行以下命令在单个终端上获得最少的X会话

xinit

我已经好几年没有这样做了,但是,上一次我这样做会得到如下结果:

在此处输入图片说明

到那里后,您可以正常运行GUI程序,最好通过在后台启动(带有&)启动GUI程序,这样您就不会失去对唯一终端的访问权限。


2
可能值得一提的是,“正常运行”将很可能涉及后台流程,因此您很可能想使用xterm &来获得一个额外的终端,而不仅仅是xterm。等等
CVn 2015年

6

这是无头运行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并查看该应用程序。


3

是。只需执行显示管理器的相同操作即可。除了图形登录屏幕(在这种情况下您不需要)之外,显示管理器仅做两件事:

  1. 首先,它启动一个X11“显示服务器”,例如Xorg,
  2. 然后启动“客户”,告诉Xorg什么以及在哪里绘制。

您可以使用类似的工具startx通过控制台登录启动X11。它将启动Xorg,然后启动~/.xinitrc文件中列出的客户端。

例如,.xinitrc文件可以具有startkdegnome-session,也可以列出各个组件(窗口管理器,面板/任务栏,桌面...)。

(请注意,xinit和之间有一些区别startx–通常应使用后者,因为某些发行版具有一些简单的xinit将忽略的重要配置,即xserverrc脚本。)

使用Wayland,台式机和面板是“合成器”的集成部分,因此整个界面只需一步即可启动,而无需其他工具。例如,您可以使用运行weston或启动GNOME gnome-session --session=gnome-wayland


1

您可以使用ssh X转发(ssh -X;也可能需要在服务器配置中启用)来启动X应用程序,前提是您具有本地 X显示。

该应用程序将在无头系统上运行时在本地启动并显示。您需要在无头系统上安装X才能拥有正确的库,而这可能不适用于更现代的GNOME应用程序。

$DISPLAY即使您的外壳是远程外壳(ssh或控制台),您也可以用来在附加的X显示器上启动应用程序。如果您是root用户,但不在X显示屏上登录的人,则可以覆盖xauth安全性,并无论如何在其显示屏上弹出一个窗口。如果您在不同的显示器上有两个不同的X显示服务器,这也可以使用。

另一个海报提到了VNC。我也为此目的使用了NX,我更喜欢它。


答案是不相关的,但有用的
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.