TigerVNC with CentOS

VNC (Virtual Network Computing)
How to install VNC server on CentOS 6

# yum install vnc-server
or
# yum install tigervnc-server
$ su -
# useradd larry
# useradd moe
# useradd curly
# passwd larry
# passwd moe
# passwd curly
VNCSERVERS="1:larry 2:moe 3:curly"
VNCSERVERARGS[1]="-geometry 640x480"
VNCSERVERARGS[2]="-geometry 640x480"
VNCSERVERARGS[3]="-geometry 800x600"

Recovery from a logout (Not implemented for CentOS 6)

If you logout of your desktop manager, it is gone!

$ ps aux | grep andreas
andreas    446  0.0  0.0  20040   636 ?        S    May06   0:00 dbus-launch --sh-syntax --exit-with-session
andreas    447  0.0  0.0  36544  1684 ?        Ssl  May06   0:07 /bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
andreas    560  0.0  0.2 581832 84144 ?        Ssl  May06  10:20 /usr/libexec/gnome-settings-daemon
andreas    564  0.0  0.0 293540  7976 ?        Ss   May06   0:00 seahorse-daemon
andreas    568  0.0  0.0 137216  2072 ?        S    May06   0:00 /usr/libexec/gvfsd
andreas    595  0.0  0.0 255504  6740 ?        S    May06   0:00 /usr/libexec/gdu-notification-daemon
andreas    597  0.0  0.0 485748 11608 ?        Sl   May06   0:15 gpk-update-icon
andreas    599  0.0  0.0 363212  3760 ?        Ssl  May06   0:00 /usr/bin/pulseaudio --start --log-target=syslog
andreas    601  0.0  0.0 235732  5344 ?        S    May06   0:02 abrt-applet
andreas    605  0.0  0.0 364236  7724 ?        S    May06   0:10 /usr/libexec/evolution/2.32/evolution-alarm-notify
andreas    608  0.0  0.0 276476  8148 ?        S    May06   0:03 bluetooth-applet
andreas    617  0.0  0.0 470144 11232 ?        S    May06   0:00 gnome-volume-control-applet
andreas    619  0.0  0.0 146232  3124 ?        S    May06   0:00 /usr/libexec/gvfs-gdu-volume-monitor
andreas    620  0.0  0.0  30164  5216 ?        S    May06   0:00 /usr/sbin/restorecond -u
andreas    622  0.0  0.0 299516 11792 ?        Sl   May06   0:11 /usr/libexec/polkit-gnome-authentication-agent-1
andreas    629  0.0  0.0 324324 19408 ?        S    May06   0:01 python /usr/share/system-config-printer/applet.py
andreas    636  0.0  0.0 115100  3964 ?        S    May06   0:00 /usr/libexec/im-settings-daemon
andreas    648  0.0  0.0 148232  3152 ?        S    May06   0:00 /usr/libexec/gvfsd-trash --spawner :1.8 /org/gtk/gvfs/exec_spaw/0
andreas    687  0.0  0.0 264788  6504 ?        Ss   May06   1:57 gnome-screensaver
andreas    707  0.0  0.0 232444  2064 ?        Sl   May06   4:20 /usr/libexec/gvfs-afc-volume-monitor
andreas    711  0.0  0.0 150896  2192 ?        S    May06   0:00 /usr/libexec/gvfs-gphoto2-volume-monitor
andreas    807  0.0  0.0  95228  2628 ?        S    May06   0:00 /usr/libexec/pulse/gconf-helper
andreas    822  0.0  0.0  40900  2252 ?        S    May06   0:00 /usr/libexec/gconf-im-settings-daemon
andreas    839  0.0  0.0 135096  1800 ?        S    May06   0:00 /usr/libexec/gvfsd-metadata
andreas    841  0.0  0.0 141484  2336 ?        S    May06   0:00 /usr/libexec/gvfsd-burn --spawner :1.8 /org/gtk/gvfs/exec_spaw/1
andreas  16254  0.2  0.0 633208 24604 ?        Sl   17:30   0:04 nautilus
andreas  16260  0.0  0.0 451640 13056 ?        Sl   17:30   0:00 metacity
root     16426  0.8  0.0 102460  4316 ?        Ss   17:56   0:00 sshd: andreas [priv]
andreas  16430  0.1  0.0 102460  2000 ?        S    17:56   0:00 sshd: andreas@pts/8
andreas  16431  0.2  0.0 108340  1796 pts/8    Ss   17:56   0:00 -bash
andreas  16461  0.0  0.0 110240  1160 pts/8    R+   17:56   0:00 ps aux
andreas  16462  0.0  0.0 103256   852 pts/8    S+   17:56   0:00 grep andreas
andreas  51516  0.0  0.0 133476  5540 ?        S    Jul22   0:14 /usr/libexec/gconfd-2
andreas  65244  0.0  0.1 126628 50508 ?        S    May06   1:17 /usr/bin/Xvnc :21 -desktop srv-fpga:21 (andreas) -auth /home/andreas/.Xauthority -geometry 1280x1024 -rfbwait 30000 -rfbauth /home/andreas/.vnc/passwd -rfbport 5921 -fp catalogue:/etc/X11/fontpath.d -pn
#!/usr/bin/env bash

if [ -z "${USER}" ]; then
    echo "no environment variable USER set"
    exit -1
fi

PID=

pid() {
    PID=$(ps aux | grep ${USER} | grep Xvnc | grep -v grep | awk '{print $2}')
}

start() {
    echo "==> Start vncserver"
    DISPLAY=$(cat /etc/sysconfig/vncservers | grep ${USER} | awk -v display="[0-9]+" -v user=":${USER}" '{ if (match($0, display user)) { print substr($0, RSTART, RLENGTH - length(user)); } }')
    ARGS=$(cat /etc/sysconfig/vncservers | grep "VNCSERVERARGS\[${DISPLAY}\]" | cut -d '"' -f2)
    echo "    display=${DISPLAY}"
    echo "    arguments=${ARGS}"
    vncserver :${DISPLAY} ${ARGS}
}

stop() {
    echo "==> Stop vncserver"
    kill ${PID}
}

pid

case "$1" in
    start)
        if [ -n "${PID}" ]; then
            echo "vncserver (pid=${PID}) is already running"
            exit -2
        fi
        start
        ;;
        
    stop)
        if [ -z "${PID}" ]; then
            echo "vncserver is not running"
            exit -3
        fi
        stop
        ;;
        
    restart)
        if [ -n "${PID}" ]; then
            echo "vncserver (pid=${PID}) is running. Stopping"
            stop
            sleep 3
        else
            echo "vncserver is already stopped"
        fi
        start
        ;;
        
    status)
        if [ -n "${PID}" ]; then
            echo "vncserver (pid=${PID}) is running"
        else
            echo "vncserver is stopped"
        fi
        ;;
        
    *)
        echo "$0 (start|stop|restart|status)"
        ;;
        
esac

Leave a Reply

Your email address will not be published. Required fields are marked *