tigervnc 服务器因未设置 HOME 变量而失败

tigervnc 服务器因未设置 HOME 变量而失败

系统是 Fedora Core 24,最近从 fc23 升级而来,使用 fc23 启动 vncserver 时没有错误,但升级后出现以下错误:

Unit vncserver@:2.service has begun starting up
vncserver: The HOME environment variable is not set

启动脚本或文件没有任何变化.vnc。vncserver 会在哪里寻找HOME变量?设置变量的命令会HOME插入到哪里?它会是什么样子?

答案1

当您登录时,环境HOME变量会自动设置。正常情况下,您不会发现任何登录脚本以任何方式对其进行修改。

环境变量通常不加修改地传递给登录会话中执行的程序。而且几乎没有理由取消设置HOME,因此您提到的错误情况不太可能发生。

您可以尝试此命令来查看当前的环境变量:

tr '\0' '\n' </proc/$$/environ

并且您可以将其替换$$为您想要查看其环境变量的任何进程的 pid(尽管如果您不是 root 的话,对于您可以查看的进程显然存在安全限制)。

HOME如果您在从 shell 调用上述内容时发现确实存在,则可以尝试使用strace以查看它们在何时消失。您可以尝试:

strace -fve execve vncserver

这将运行vncserver并向您显示传递给了哪些环境变量vncserver以及执行的任何内容vncserver

最后,您可以尝试创建一个新用户,看看问题是否与特定用户的配置文件有关,或者是系统范围的问题。

答案2

请检查您的服务是否已使用旧配置文件运行,转到/root/.vnc目录并检查是否没有任何文件yourhostname:1.pid。如果存在,请执行 cat 并找到文件内的 pid,然后执行 kill -9 pid。之后尝试再次启动 vncserver 服务。

相关内容