
Я использую 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>