diff options
Diffstat (limited to 'vnc')
-rwxr-xr-x | vnc | 42 |
1 files changed, 42 insertions, 0 deletions
@@ -0,0 +1,42 @@ +#!/bin/bash +# +# Wrapper around ssh and vncviewer +# + +# Parameters +BASENAME="`basename $0`" +SERVER="$1" + +# Check +if [ -x "$SERVER" ]; then + echo "usage: $BASENAME <server>" + exit 1 +fi + +# Check if vncserver is running in the remote server and start otherwise +ssh $SERVER <<EOF + HOSTNAME="\$(cat /etc/hostname)" + + if [ -e "\$HOME/.vnc/\$HOSTNAME:1.pid" ]; then + PID="\$(cat \$HOME/.vnc/\$HOSTNAME:1.pid)" + + if ! ps \$PID &> /dev/null; then + /usr/bin/vncserver -alwaysshared -dpi 96 -localhost :1 + fi + else + /usr/bin/vncserver -alwaysshared -dpi 96 -localhost :1 + fi +EOF + +# See http://www.g-loaded.eu/2006/11/24/auto-closing-ssh-tunnels/ +# Optional SSH compression +#ssh -C -c blowfish -f -L 5901:127.0.0.1:5901 $SERVER sleep 10 +ssh -f -L 5901:127.0.0.1:5901 $SERVER sleep 10 + +# Run VNC client +# Copy $SERVER:~/.vnc/passwd into $HOME/.vnc/$SERVER.passwd for passwordless login +if [ -e "$HOME/.vnc/$SERVER.passwd" ]; then + vncviewer -passwd $HOME/.vnc/$SERVER.passwd localhost:5901 +else + vncviewer localhost:5901 +fi |