Как убить определенный сеанс x11rdp
Я использую x11rdp с xrdp v0.6.0 в Ubuntu 12.04
Проблема в том, что когда я подключаюсь удаленно из дома в офис, моя сессия застревает!
Вернувшись к работе, я не могу открыть приложения, которые уже запущены в сеансе x11rdp. например, Firefox, эмпатия...
Я должен закрыть их, затем я могу снова открыть нужное приложение.
я знаю что могу pkill -u user
но кажется непрофессиональным
Я старался sudo service xrdp restart
(или остановите, затем начните). Это не закрывает текущие сессии.
Есть ли менеджер сеансов xrdp, как в Windows Server, или я могу убить только сеанс моего пользователя?
3 ответа
Используя команду ниже:
ps u -u "$USER" | awk '/xrdp/ && ! /awk / {system("kill "$2)}'
- замещать
$USER
с другим именем пользователя, если процесс запущен с другим пользователем, чем вы - замещать
xrdp
с вашим именем процесса
ps aux | grep <user> | grep -i x11rdp
даст вам идентификатор процесса во втором столбце строки, которая не является вашей grep.
Вы можете тогда
kill -9 <pid>
Чтобы вывести список всех сеансов rdp с соответствующими номерами pid и портов:
{ 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>