这是关于 Android 14 手机上 Termux 下的 Proot 环境 Andronix 中的 Ubuntu 22.04 XFCE 子系统。“真正的”根(对于已根植的 Android)未被使用,当我写到“根”时,它是 Proot 子系统的虚拟根。我将其发布在“超级用户”上,因为这不是 Android 问题,而是通用的 Linux/VNC 问题。
当我运行 VNC 服务器时,我可以以 root 身份获取 VNC,并且可以正常连接到 VNC 服务器。但我想以非 root 用户身份使用它,因此我创建了一个用户,并在虚拟文件系统中创建了一个主文件夹 /home/user。因此,我vncserver-start
在运行后使用相同的命令(见下文)su -c user
获取非 root 用户环境。安装后成功,然后我在 xfce 环境中配置了“用户”的本地环境,并注销。然后我以相同的用户身份重新启动了 VNC 服务器,然后它因 VNC 服务器错误而失败,因此它不是一个有问题的用户环境。
VNC 服务器的启动方式如下:
#!/usr/bin/env bash
export USER=user
export HOME=/home/user
su -c `vncserver -fg -name remote-desktop -geometry 1920x1080 -localhost yes :1` $USER
我必须使用 su 进入用户帐户,因为 proot 本身以 root 用户身份打开。但输出是:
=================== tail /home/user/.vnc/localhost:5901.log ===================
[mi] mieq: warning: overriding existing handler (nil) with 0x30001531e0 for event 2
[mi] mieq: warning: overriding existing handler (nil) with 0x30001531e0 for event 3
X connection to :1 broken (explicit kill or server shutdown).
Sat Apr 20 08:58:58 2024
ComparingUpdateTracker: 0 pixels in / 0 pixels out
ComparingUpdateTracker: (1:nan ratio)
Killing Xtigervnc process ID 8381... success!
================================================================================
Session startup via '/etc/X11/Xtigervnc-session' cleanly exited too early (< 3 seconds)!
Maybe try something simple first, e.g.,
tigervncserver -xstartup /usr/bin/xterm
The Xtigervnc server cleanly exited!
The X session cleanly exited!
VNC server started. The default password is the account password for user
user@localhost:~$
但是,当我将“user”替换为“root”,将“/home/user/”替换为“/root”时,它就可以正常工作。当我使用以下代码简化脚本时
#!/usr/bin/env bash
vncserver -fg -name remote-desktop -geometry 1920x1080 -localhost yes :1
它的工作原理和我不需要su -c '<command>
'root'本身。