-
inetd starts in.vncserver,
-
in.vncserver launches Xvnc -inet in XDMCP mode,
-
gdm requests user login, and on success spawns XvncPreSession
-
XvncPreSession is responsible for finding a user's existing session, or
starting a new session for the user (if [ -z "$PROCS" ];)
-
if a user has an existing session it picks the first one (at the moment, nice
gui to come)
-
if the user does not have an existing session, then launch /usr/bin/vncserver
(which comes with my redhat distribution)
-
XvncPreSession then stores the user's display number & user name in a
temporary file
-
XvncPreSession then kills Xvnc,
-
in.vncserver gets back control at this point,
-
in.vncserver will now try and read the temporary file created in step 5,
-
in.vncserver reads the user's vncpasswd file, sends that to the connected
client, and waits for the connection to resync,
-
in.vncserver now connected to the user's vnc service on localhost
-
and spends the rest of it's life shipping data back & forth between the
client & their server.