We usually start vncserver process on our servers for X services. On some of the new servers, vnc got killed as soon as you exited the telnet/ssh session from where it was started. After digging a lot I found that this happens if your default shell is sh. When you exit sh, then all the processes you started during your login get killed automatically. The trick is to first run a different shell, like ksh or bash and then run vncserver. Once you do that and exit, vncserver process will not get killed anymore.
$ echo $SHELL
$ vncserver -nolisten local