So beenden Sie eine bestimmte x11rdp-Sitzung

So beenden Sie eine bestimmte x11rdp-Sitzung

Ich verwende x11rdp mit xrdp v0.6.0 in Ubuntu 12.04

Das Problem besteht darin, dass meine Sitzung hängen bleibt, wenn ich von zu Hause aus eine Remote-Verbindung zum Büro herstelle.

Wenn ich wieder zur Arbeit gehe, kann ich keine Anwendungen öffnen, die bereits in der x11rdp-Sitzung ausgeführt werden, z. B. Firefox, Empathy ...

Ich muss sie schließen, bevor ich die benötigte App wieder öffnen kann.

Ich weiß, dass ich das kann pkill -u user, aber es wirkt unprofessionell

Ich habe es versucht sudo service xrdp restart(oder stoppen und dann starten). Aktuelle Sitzungen werden dadurch nicht geschlossen.

Gibt es einen XRDP-Sitzungsmanager wie beim Windows-Server oder kann ich nur die Sitzung meines Benutzers beenden?

Antwort1

Verwenden Sie den folgenden Befehl:

ps u -u "$USER" | awk '/xrdp/ && ! /awk / {system("kill "$2)}'
  • Ersetzen Sie $USERdurch einen anderen Benutzernamen, wenn der Prozess mit einem anderen Benutzer als Ihrem ausgeführt wird.
  • Ersetzen Sie es xrdpdurch Ihren Prozessnamen

Antwort2

Um Ihre eigene(n) Sitzung(en) zu schließen,

pkill -HUP xrdp

sollte gut genug sein. (Bei mir funktioniert es.)

Antwort3

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

gibt Ihnen die Prozess-ID in der zweiten Spalte der Zeile, die nicht Ihr grep ist.

Sie können dann

kill -9 <pid>

Antwort4

So listen Sie alle RDP-Sitzungen mit ihren jeweiligen PID- und Portnummern auf:

{ 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 

Sie können dann die spezifische Prozess-ID (PID) beenden:

$ kill -9 <pid>

verwandte Informationen