Назад | Перейти на главную страницу

Завершить несуществующий сеанс xrdp - пользователи xrdp не могут войти в систему

пользователь не может подключиться к серверу через xrdp, протестирован с использованием удаленного настольного клиента Linux, а также клиента удаленного рабочего стола Windows

сообщения об ошибках: «ошибка: проблема с подключением»

/var/log/sesman.log 

показывает эту ошибку

[20170419-22:06:02] [INFO ] scp thread on sck 7 started successfully
[20170419-22:06:02] [INFO ] ++ reconnected session: username test, 
display :47.0, session_pid 2869, ip xxx.xxx.xxx.xxx:53732 - socket: 7

grepping для этого процесса

root@server:/etc/xrdp# ps -aux | grep defunct
root      2869  0.0  0.0      0     0 ?        Z    19:08   0:00 
[xrdp-sessvc] <defunct>

пытаясь убить процесс

kill -9 2869 

не убивает процесс

как мне убить этот процесс?

пользователи не могут войти в систему, о которой в файле журнала говорится, что это существующий сеанс

однако при запуске посмотрите, чтобы увидеть отключенные сеансы tcp (не установленные соединения, а просто прослушивающие порты), я не вижу никаких сеансов, существующих для этого пользователя

это хроническая, повторяющаяся проблема, которая, кажется, не проявляется в какой-либо регулярной форме

что мне делать?

список всех сеансов xrdp

#!/bin/bash

# find disconnect RDP sessions

lsof -b -w -n -c /^Xvnc$/b -a -iTCP:5900-5999

не показывает отключенных сеансов (все TCP-соединения установлены для всех подключенных пользователей)

Немного поздно в игре, но почему это происходит, я не уверен, но на моем сервере с временем безотказной работы всего 7 месяцев были тысячи неработающих процессов xrdp. Я очищаю его с помощью «sudo systemctl restart xrdp.service».

Для всех, кто сталкивается с этой проблемой, я обнаружил, что сервер xrdp хранит некоторую информацию о состоянии отключенных сеансов. Даже анализ всех TCP-соединений и уничтожение прослушивающих, но не установленных портов не решает эту проблему (хотя это решает огромную проблему ненужного выделения ресурсов).

Я обнаружил, что не могу пожать зомби и заставить XRDP создать новый сеанс вместо попытки переподключиться к предыдущему состоянию без перезапуска сервера XRDP.

Единственный трюк, который я нашел, - это изменить разрешение экрана клиента, чтобы заставить сервер xrdp думать, что это новая машина. Это позволяет принять соединение и устанавливает новый сеанс.