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