LINUX.ORG.RU
ФорумAdmin

XRDP и снятие отключенных сессий

 


0

2

Привет всем,

Поднял терминальный сервер на Debian 11, вроде как все работает, но почему-то не снимаются отключенные сессии.
То есть, если посмотреть loginctl list-sessions, то сеансы остаются и множатся!
Можно конечно снимать вручную:
sudo loginctl kill-user ...
Но хотелось бы автоматом.

Вроде бы за это должны отвечать опции в sesman.ini:
KillDisconnected, DisconnectedTimeLimit, IdleTimeLimit
Но они не работают!

Подскажите плз., кто-нибудь решал подобное?



Последнее исправление: sarge (всего исправлений: 5)
Ответ на: комментарий от Pinkbyte

Благодарю за ответ.

Вот так выглядит нужный абзац в sesman.ini:

;; KillDisconnected - kill disconnected sessions
; Type: boolean
; Default: false
; if 1, true, or yes, every session will be killed within DisconnectedTimeLimit
; seconds after the user disconnects
KillDisconnected=true

;; DisconnectedTimeLimit (seconds) - wait before kill disconnected sessions
; Type: integer
; Default: 0
; if KillDisconnected is set to false, this value is ignored
DisconnectedTimeLimit=600

;; IdleTimeLimit (seconds) - wait before disconnect idle sessions
; Type: integer
; Default: 0
; Set to 0 to disable idle disconnection.
IdleTimeLimit=900

После 10 минут от закрытия сеанса в логах вот такое:

[20231023-00:51:17] [INFO ] Calling auth_stop_session and auth_end from pid 3413
[20231023-00:51:17] [INFO ] Terminating X server (pid 3415) on display 10
[20231023-00:51:17] [INFO ] Terminating the xrdp channel server (pid 3459) on display 10
[20231023-00:51:17] [INFO ] X server on display 10 (pid 3415) returned exit code 0 and signal number 0
[20231023-00:51:17] [INFO ] xrdp channel server for display 10 (pid 3459) exit code 0 and signal number 0
[20231023-00:51:17] [INFO ] cleanup_sockets:
[20231023-00:51:17] [INFO ] Process 3413 has exited
[20231023-00:51:17] [INFO ] ++ terminated session:  username user, display :10.0, session_pid 3413,

При выводе команды sudo loginctl list-sessions сессия пользователя остается.
Если зайти и выйти терминалом еще раз, то появится еще одна.

sarge
() автор топика
Ответ на: комментарий от sarge

Так у тебя X-сессия закрылась успешно, а logind - нет. Копай в сторону logind.conf - там тоже есть всякие параметры типа IdleAction.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Спасибо за совет!
В общем в logind.conf есть похожие опции(сейчас все закомментировано):

KillUserProcesses=
IdleAction=
IdleActionSec=

Из которых подходит только первая(и то с опаской):

KillUserProcesses=
	   Takes a boolean argument. Configures whether the processes of a user should be killed when she or he completely logs out (i.e. after
	   her/his last session ended). Defaults to "no".
	   Note that setting KillUserProcesses=1 will break tools like screen(1).

Но, рядом есть другой сервер(Alt Linux), с таким же xrdp+xfce и также закомментированным logind.conf.
Там, что есть очень странно, все сессии после выхода из терминала снимаются!
Может не в той стороне искать?

sarge
() автор топика
Ответ на: комментарий от sarge

Но, рядом есть другой сервер(Alt Linux), с таким же xrdp+xfce и также закомментированным logind.conf.

Что, и конфигурация в /etc/pam.d идентичная(не только для xrdp, а вообще)? Не верю! А она может влиять на закрытие сессий.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от Pinkbyte

В каталоге pam.d естественно различается многое.

Но что касается файлов xrdp-sesman, то они практически одинаковые.
Уточните плз. что(какой конкретно параметр поискать) может влиять на корректное снятие сеанса?

sarge
() автор топика
Ответ на: комментарий от sarge

Но что касается файлов xrdp-sesman, то они практически одинаковые.

И include директив там нет? На другие файлы, которые разные?

Я просто смотрю на своей системе в /etc/pam.d/xrdp-sesman, а там у меня:

auth       include      system-remote-login
account    include      system-remote-login
password   include      system-remote-login
session    include      system-remote-login

Соответственно смотреть надо туда, если хочется разобраться что не так с сессией

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Думаю, что не туда копаем.
На самом деле нужно менять вот этот параметр:

/etc/systemd/logind.conf

KillUserProcesses=yes

Такая же проблема описана вот здесь:
https://askubuntu.com/questions/1369771/unable-to-kill-user-session-with-loginctl

sarge
() автор топика