Если попытаться выйти из xrdp-сессии, экран становится черным и сессия зависает. Если закрыть окно, процессы пользователя остаются запущенными, и при повторном подключении этим же пользователем опять получаем черный экран. Проверял в виртуальной машине, на физическом хосте возможности проверить нет.
После закрытия XFCE через "завершить сессию", на самом деле остаются запущенными куча процессов ● session-1159.scope - Session 1159 of User alexei Loaded: loaded (/run/systemd/transient/session-1159.scope; transient) Transient: yes Active: active (running) since Fri 2025-12-19 13:08:33 MSK; 4min 51s ago Invocation: 2a4d35dbfa2d42d2b0c33fe6df67ae0b Tasks: 43 Memory: 204.5M (peak: 404.7M, swap: 8K, swap peak: 8K) CPU: 10.499s CGroup: /user.slice/user-1000.slice/session-1159.scope ├─2427445 xrdp-sesexec ├─2427471 Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log ├─2427486 /bin/bash /etc/xrdp/startwm.sh ├─2427487 /usr/sbin/xrdp-chansrv ├─2427798 /usr/libexec/polkit-1/polkit-gnome-authentication-agent-1 ├─2427801 /usr/bin/python3 /usr/bin/blueman-applet ├─2427804 /usr/lib64/xfce4/notifyd/xfce4-notifyd ├─2427807 /usr/bin/python3 /usr/share/system-config-printer/applet.py ├─2427810 nm-applet └─2427817 xfce4-screensaver
Тоже самое и у меня: Если попытаться выйти из xrdp-сессии, экран становится черным и сессия зависает. Если закрыть окно, процессы пользователя остаются запущенными, и при повторном подключении этим же пользователем опять получаем черный экран. Проверено на SimplyLinux, Startkit_Xfce Установка с нуля и далее: (apt-get install xrdp && usermod -a -G tsusers,tsadmins myuser1 && systemctl enable xrdp && systemctl start xrdp && systemctl status xrdp) Вход нормальный, а при выходе зависание. Проверено на remmina и mstsc Windows. После закрытия окна RDP терминала на сервере xrdp видим: $ xrdp-sesadmin -c=list Session ID: 1272 Display: :10 User: myuser1 Session type: Xorg Screen size: 1920x1080, color depth 24 Started: Wed Jan 28 16:06:09 2026 Start IP address: 192.168.8.115
Created attachment 20689 [details] Рабочий вариант
В файл /etc/xrdp/startwm.sh добавили новую функцию: get_xdg_session_startupcmd() { # If DESKTOP_SESSION is set and valid then the STARTUP command will be taken from there # GDM exports environment variables XDG_CURRENT_DESKTOP and XDG_SESSION_DESKTOP. # This follows it. if [ -n "$1" ] && [ -d /usr/share/xsessions ] \ && [ -f "/usr/share/xsessions/$1.desktop" ]; then STARTUP=$(grep ^Exec= "/usr/share/xsessions/$1.desktop") STARTUP=${STARTUP#Exec=*} XDG_CURRENT_DESKTOP=$(grep ^DesktopNames= "/usr/share/xsessions/$1.desktop") XDG_CURRENT_DESKTOP=${XDG_CURRENT_DESKTOP#DesktopNames=*} XDG_CURRENT_DESKTOP=${XDG_CURRENT_DESKTOP//;/:} export XDG_CURRENT_DESKTOP export XDG_SESSION_DESKTOP="$DESKTOP_SESSION" fi } Блок: # debian, alt if [ -r /etc/X11/Xsession ]; then pre_start . /etc/X11/Xsession post_start exit 0 fi заменили на: # debian, alt if [ -r /etc/X11/Xsession ]; then pre_start # if you want to start preferred desktop environment, # add following line, # [ -n "$XRDP_SESSION" ] && export DESKTOP_SESSION=<your preferred desktop> # in either of following file. # 1. ~/.profile # 2. create a file (any_filename.sh is OK) in /etc/profile.d # <your preferred desktop> shall be one of "ls -1 /usr/share/xsessions/|cut -d. -f1" # e.g. [ -n "$XRDP_SESSION" ] && export DESKTOP_SESSION=ubuntu # Alternatively, set "PassShellAsEnv=DESKTOP_SESSION" in sesman.ini, which # lets the user specify the required session directly. # STARTUP is the default startup command. # if $1 is empty and STARTUP was not set # /etc/X11/Xsession.d/50x11-common_determine-startup will fallback to # x-session-manager if [ -z "$STARTUP" ] && [ -z "$DESKTOP_SESSION" ] && ! which wm-select >/dev/null 2>&1; then RUNWM=/usr/bin/runwm DESKTOP_SESSION="$($RUNWM default 2>/dev/null ||:)" [ -n "$DESKTOP_SESSION" ] || [ ! -d /usr/share/xsessions ] || DESKTOP_SESSION="$(ls -1 /usr/share/xsessions | head -n 1 | cut -d. -f1)" fi if [ -z "$STARTUP" ] && [ -n "$DESKTOP_SESSION" ]; then get_xdg_session_startupcmd "$DESKTOP_SESSION" fi if [ -n "$STARTUP" ]; then . /etc/X11/Xsession "$STARTUP" else . /etc/X11/Xsession fi post_start exit 0 fi После чего получили некорректный выход. Если использовать старый файл то ошибка уходит тут, но может вылезти в других вариантах использования терминала.
Выход работает со старым файлом /etc/xrdp/startwm.sh, но в логе xrdp.service пишет фев 11 16:57:35 host-sl11 xrdp[9766]: [ERROR] Xorg server closed connection Нужно искать ошибку в новом файле скрипта startwm.sh