xrdp 在作为服务启动时不起作用,但在手动启动时起作用

xrdp 在作为服务启动时不起作用,但在手动启动时起作用

直到最近,我的 CentOS 7.4 工作站上才有了一个可以运行的 xrdp。我能够从 Windows 计算机进行连接,没有出现任何故障。然后发生了一些变化(也许是在“yum 更新”之后?),我现在无法连接(症状:“安全协商后出现 vnc 错误 1”)。我浏览了日志试图了解发生了什么,但没有成功。

然后,我尝试在工作站上手动启动 xrdp 和 xrdp-sesman(使用 -n“no-daemon”标志)以获取一些“实时”日志。

令人惊讶的是(?),当两者都手动启动时,我可以再次通过 xrdp 访问我的机器。

您知道我可以探索哪些途径来解决我的问题吗?您可以在网络上找到无数与 xrdp / vnc / CentOS 相关的帖子,其中大多数信息都是过时的,而且没有一个是非常有帮助的。

我认为对于 Linux 爱好者来说,手动启动时它可以工作这一事实应该会触发一些标志。

答案1

在 Debian 9 中遇到了完全相同的问题,并在这里找到了解决方案:

https://github.com/neutrinolabs/xrdp/issues/847

请参阅 imc0 下方 1/2 处的评论。对我来说实施需要一些修改。我的所有脚本(startwm.sh - 不是 startwm-bash.sh - 以及我创建的 startwm-local.sh)以及 sesman.ini 都位于 /etc/xrdp/ 中。

针对评论进行编辑:

--> 在 /etc/xrdp 中创建一个名为 startwm-local.sh 的文件,其中包含:

#!/bin/sh

执行 dbus-launch --exit-with-X11 /etc/xrdp/startwm.sh

--> 运行 chmod ugo+x /etc/xrdp/startwm-local.sh

--> 编辑 /etc/xrdp/sesman.ini,并更改以下行:

UserWindowManager=startwm.sh

默认窗口管理器=startwm.sh

到:

UserWindowManager=startwm-local.sh

DefaultWindowManager=startwm-local.sh

相关内容