在没有人登录控制台的情况下,如何运行X应用程序并将其显示在该X会话上?假设我要么是root用户,要么是登录的同一用户,所以原则上我有权这样做。但是我如何说服X呢?
这种情况的一些示例:
import
这是直接从无窗口Linux终端启动的LaunchOpenGL应用程序的简单版本
简短的答案是,您必须设置DISPLAY环境变量,然后应用程序将运行。
DISPLAY
长答案是我们拥有Xauth,除非您在同一台计算机上以同一用户身份运行,否则除非将Xauth凭据从运行X服务器的帐户导出到运行X的帐户,否则可能无法正常工作客户。ssh -X为您解决这个问题,这就是为什么它很棒,但是手动过程涉及xauth extract - $DISPLAY在X服务器帐户上运行并将数据馈送到xauth merge -客户端帐户上。(警告:数据是二进制的。)
ssh -X
xauth extract - $DISPLAY
xauth merge -
在现代Linux系统上,在0处有一个X会话,并且X11授权数据文件始终是,$HOME/.Xauthority因此您通常可以设置两个环境变量,例如在Bash中:
$HOME/.Xauthority
export XAUTHORITY=/home/$your_username/.Xauthority export DISPLAY=':0'