我想要startx
在远程机器上,X
在该远程机器的显示器/监视器上进行会话。
背景:我的机器都运行 Arch Linux,它们都不使用图形登录管理器(如 GDM 或 KDM 等)。我通常登录 tty,然后输入“ startx
”以启动我的 XFCE4 会话。在工作时,我有时会通过 VNC 连接到我的家用机器。这很好用。有时,我会做一些需要我的远程机器(在家里)重新启动的事情。
如果我这样做,就没有办法重新连接到机器,因为我的 VNC 连接需要正在运行的 X 会话(就x11vnc
我的情况而言)。因此,我需要一个程序以某种方式连接到我刚刚重新启动的远程机器(到 TTY1)以便输入username
,password
和“ startx
”。
有人可以提示一下如何做到这一点吗?
答案1
你的方法是正确的。但是你无法按照你建议的方式远程启动 x。要使 x11vnc 正常工作,你需要运行 Xserver。我建议你安装 xdm,它将带你进入 X 中的登录屏幕。然后你可以在 Xserver 上安装 x11vnc 并以此方式登录。
答案2
ssh -X ...
将启用X11转发。但需要服务器端的支持。
PS:我最近尝试运行整个 xfce 会话。所以我自己也很好奇 :D
答案3
问题最终源于Xorg
二进制文件不再具有 setuid root 权限,并且远程 ssh 无法让您在真实计算机上获得所需的权限tty
。
您可以通过编辑/创建文件来合理干净地解决此问题/etc/X11/XWrapper.conf
并确保设置:
allowed_users = anybody
看Xorg.wrap(1). 然后您将能够运行startx
SSH 会话。
这将运行您在实际屏幕上通常获得的任何 Xorg(没有 Xvfb 或其他 hack)。我使用libvnc.so
Xorg 加载的 TigerVNC 模块,因此我可以直接使用 VNC,并且性能合理。
最后一个问题:如果您使用它来从断电中恢复,某些驱动程序/Xorg 组合将无法启动,如果它们无法确定所连接显示器的分辨率(即,如果没有显示器或显示器已关闭)。这个答案为我工作英伟达显卡:
Section "Device"
..
Driver "nvidia"
Option "AllowEmptyInitialConfiguration" "true"
EndSection
您可能还需要设置具有虚拟尺寸的显示,或者xrandr --fb WxH
如果分辨率不符合预期,则使用它来修复分辨率。