我正在尝试启动一个程序,该程序需要在没有附加显示器的远程服务器上渲染窗口(Unity Game)。我不想用来ssh -X
将渲染命令转发到我的本地计算机。我试图在无头模式下运行该程序,但仍然使用远程服务器的 GPU,或使用Xvfb
,但我无法让它工作。
在此过程的第一步中,我尝试判断X服务器是否已经在运行。在 ssh 进入远程服务器后,我跑了
echo $DISPLAY
它返回空字符串。我认为这意味着 X 服务器没有运行(参考)
然而,我遇到了矛盾的信息:
跑步时
ps ax | grep X
,我得到2149 tty1 Sl+ 0:03 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/121/gdm/Xauthority -background none -noreset -keeptty -verbose 3
这意味着 X 服务器确实正在运行(因为 Xorg 可执行文件)。运行
ps -C Xorg
还显示PID 2149(参考)。另外,当我跑步时
Xvfb :0.0
,我得到$ Xvfb :0.0 _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establis
这似乎再次表明 X 服务器已经在 上运行
:0.0
。
然而(再次),当我运行xdpyinfo
用于显示有关 X 服务器的信息的实用程序时,我得到
$ xdpyinfo
xdpyinfo: unable to open display "".
和
$ xdpyinfo -display :0.0
No protocol specified
xdpyinfo: unable to open display ":0.0".
这似乎再次告诉我X服务器没有运行。
到底是怎么回事? X 服务器是否正在运行?
正如您可能知道的那样,我是 X 服务器相关问题的新手。请随意指出我上述步骤中的任何问题,并提出解决此问题的方法。谢谢!有很多东西需要学习。