Как завершить определенную сессию x11rdp

Как завершить определенную сессию x11rdp

Я использую x11rdp с xrdp v0.6.0 в Ubuntu 12.04

Проблема в том, что когда я подключаюсь удаленно из дома к офису, мой сеанс зависает!

Когда я возвращаюсь на работу, я не могу открыть приложения, которые уже запущены в сеансе x11rdp. Например, Firefox, empathy...

Мне приходится их закрывать, чтобы снова открыть нужное приложение.

Я знаю, что могу pkill -u user, но это кажется непрофессиональным.

Я пробовал sudo service xrdp restart(или остановить, а затем запустить). Текущие сеансы не закрываются.

Есть ли какой-либо менеджер сеансов xrdp, как в Windows Server, или я могу завершить только сеанс своего пользователя?

решение1

Используя команду ниже:

ps u -u "$USER" | awk '/xrdp/ && ! /awk / {system("kill "$2)}'
  • Замените $USERна другое имя пользователя, если процесс запущен под другим пользователем, нежели вы.
  • Замените xrdpна имя вашего процесса

решение2

Чтобы закрыть свою(и) сессию(и),

pkill -HUP xrdp

Должно быть достаточно хорошо. (Мне подходит.)

решение3

ps aux | grep <user> | grep -i x11rdp

выдаст вам идентификатор процесса во втором столбце строки, который не является вашим grep.

Тогда вы можете

kill -9 <pid>

решение4

Чтобы вывести список всех сеансов RDP с соответствующими им идентификаторами процессов и номерами портов:

{ echo "user pid Xdisplay port"; { ps -ef | \
  awk '/Xvnc :[[:digit:]]+/ {print $1,$2,$9}' | while read tu tpid tvnc; \
  do sudo netstat -tlpn | awk -v "tpid=${tpid}" '$0 ~ tpid {print $4;}' | \
  sed -r -e 's/^.*://;' -e "s/^/${tu} ${tpid} ${tvnc} /;" ; done ; } | \ 
  sort -k3 ; } | column -c4 -t 

Затем вы можете завершить процесс с определенным идентификатором (pid):

$ kill -9 <pid>

Связанный контент