List current xvnc sessions in xrdp so you can reconnect to your old one
tl;dr
{ 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
The story
I connected to a gnome session on a terminal server, and disconnected. I wanted to reconnect to my current session, but apparently I got a new X session. After some research, I learned you can configure xrdp to prompt for the port number so you can get back to the previous session. However, then you have to know what to type in. After doing a manual ps and netstat, I found some useful numbers. What I needed to enter was the tcp port number, so 5919.
The explanation
You can have an entry in the /etc/xrdp/xrdp.ini file like the following block.
[xrdp8] name=Reconnect lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=ask
When you connect over RDP, select the "Reconnect" module and type in a port number, which you can find from the output of the oneliner.
{ 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 user pid Xdisplay port mjohnso 11448 :17 5917 mjohnso 12939 :18 5918 bgstack15 1219 :19 5919
Comments