系统是 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 服务。