XRDP:窗口管理器未启动

XRDP:窗口管理器未启动

我已经设置了我的 Ubuntu 服务器,以便我可以从 Windows 远程桌面连接并登录到 XRDP。

我的问题是登录后没有启动窗口管理器。它只显示一个没有边框和灰色网格背景的 gnome 终端。

看起来它/usr/sbin/xrdp-sesman本身正在运行(从对ps和的观察来看/var/run/xrdp/xrdp-sesman.pid)。

我把类似的调试行放入或touch /home/myname/aaaaa中,但是登录后没有生成文件,所以这些脚本没有被执行。(它们都有权限。)~/startwm.sh/etc/xrdp/startwm.shaaaaachmod +x

我是否缺少一些配置文件,或者有没有进一步检查的方法?

任何帮助都值得感激。谢谢。

内容/etc/xrdp/sesman.ini

[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=0 # or 1
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh # or commented-out

[Security]
AllowRootLogin=1
MaxLoginRetry=4
TerminalServerUsers=tsusers
TerminalServerAdmins=tsadmins

[Sessions]
MaxSessions=10
KillDisconnected=0
IdleTimeLimit=0
DisconnectedTimeLimit=0

[Logging]
LogFile=/var/log/xrdp-sesman.log
LogLevel=DEBUG
EnableSyslog=0
SyslogLevel=DEBUG

[X11rdp]
param1=-bs
param2=-ac
param3=-nolisten
param4=tcp

[Xvnc]
param1=-bs
param2=-ac
param3=-nolisten
param4=tcp

/var/log/xrdp-sesman.log登录后的内容:

[20120402-21:29:34] [CORE ] starting sesman with pid 11064
[20120402-21:29:34] [INFO ] listening...
[20120402-21:29:39] [INFO ] scp thread on sck 7 started successfully
[20120402-21:29:39] [INFO ] granted TS access to user myname
[20120402-21:29:39] [INFO ] starting Xvnc session...
[20120402-21:29:40] [INFO ] starting xrdp-sessvc - xpid=11074 - wmpid=11073
[20120402-21:29:49] [INFO ] session 11072 - user myname- terminated

进程树

ps aufx以下是xrdp 会话期间的部分输出:

xrdp     12344  0.0  0.4  22856  8732 ?        Sl   Apr02   0:01 /usr/sbin/xrdp
root     12346  0.0  0.0  15672  2000 ?        S    Apr02   0:00 /usr/sbin/xrdp-sesman
root     24346  0.0  0.0   3780   872 ?        S    00:00   0:00  \_ /usr/sbin/xrdp-sessvc 24348 24347
myname   24347  0.4  0.6  76468 13700 ?        Sl   00:00   0:14      \_ gnome-terminal
myname   24362  0.0  0.0   2220   716 ?        S    00:00   0:00      |   \_ gnome-pty-helper
myname   24363  0.0  0.2   6912  5268 pts/13   Ss   00:00   0:00      |   \_ bash
myname   27902  0.0  0.0   2824  1096 pts/13   R+   00:53   0:00      |       \_ ps aufx
myname   24348  0.0  0.9  24984 19216 ?        S    00:00   0:01      \_ Xvnc :18 -geometry 1920x1080 -depth 24 -rfbauth /home/myname/.vnc/sesman_myname_passwd -bs -ac -nolisten tcp
root     24349  0.0  0.0  16596  1304 ?        Sl   00:00   0:00      \_ xrdp-chansrv

环境

  • Ubuntu 11.10 Oneiric
  • xrdp 版本:0.5.0~20100303cvs-6ubuntu2

答案1

检查文件~/Xclients/etc/X11/xinit/Xclients类似于以下内容的行,以了解您的桌面环境。

exec /usr/bin/gnome-session
# or
exec /usr/bin/startxfce

确保该文件是可执行的,即chmod +x

我的参考文献包括

答案2

所以我发现这已经很老了,但是我刚刚遇到了与您的症状相符的情况——我在 Debian 12 系统上设置了 xrdp,并且连接时,我可以登录,但用户会话会立即关闭。

我做了和你同样的事情,向 添加了 echo-debug 语句/etc/xrdp/startwm.sh,但它们却没有出现。

在我的案例中,问题在于/etc/xrdp/startwm.sh脚本是用 /bin/sh 执行的(它以 开头#!/bin/sh),后来它源/etc/profile~/.profile。在我的系统上,/etc/profile 有许多 bash-isms,所以事实证明脚本对本来应该非常良性的源操作进行了轰炸,并且它没有到达我的 echo-debug 行。

/etc/init.d/startwm.sh我的解决方案是将 的 hashbang改为#!/bin/bash,之后一切就开始正常工作了。

我认为真正正确的解决方案是审核启动文件,使它们与 /bin/sh 兼容?我搜索过,但没有找到说明这是必需的文档,因此您也许可以认为这是 Debian 打包的 xrdp 中的一个错误。

请注意,Debian 以外的其他发行版可能没有这个问题——Debian 很久以前就将系统默认 shell 切换为“dash”,因此系统默认 shell 和正常登录 shell 并不相同。我认为大多数 Debian 衍生产品都遵循了这一做法,但其他发行版可能没有。

相关内容