Walker News

Configure VNC Server To Auto Start Up In Red Hat Linux

Last year, I wrote a post on how to configure VNC server in Red Hat Linux system. But, that 3-minutes setup guide doesn’t mention about how to auto start VNC server when Linux boots up.
Again, don’t expect this is a complex setup. Indeed, you probably need less than a minute to get this job done!
How to auto start VNC server in Red Hat Linux after system reboot?

My testing environment is a machine running on Red Hat Enterprise Linux 4 Update 4, with the bundled VNC Server (i.e. vnc-server-4.0-8.1). Also assume that a Linux user account called “walker” needs the VNC server to start up automatically when Linux boots up.
  1. The Linux user account that needs VNC server to automatically start up after system reboot, must have a VNC password. To create a new (or reset a forgotten) VNC password, just login or su (switch user) with that Linux user account and execute this simple command:
    vncpasswd

    Enter a password when prompted, which is used for VNC authentication.
  2. A hidden directory named .vnc is created in the user home directory by the vncpasswd command (if it’s not current exists). Execute ls -la $HOME/.vnc command to check if there is a file called xstartup. If this file is not exists, bring up VNC server with another simple command:
    vncserver :1

    If you get this similar message “A VNC server is already running as :1″, meaning that there is another instance of VNC server running with the same display number. To resolve this, just try to replace the :1 with :2, :3, etc. Alternatively, you may execute this netstat command with root user privilege:
    [root@walkernews ~]# netstat -tulpan | grep vnc
    tcp    0    0 0.0.0.0:5801    0.0.0.0:*   LISTEN   3402/Xvnc
    tcp    0    0 0.0.0.0:5802    0.0.0.0:*   LISTEN   8447/Xvnc
    tcp    0    0 0.0.0.0:5901    0.0.0.0:*   LISTEN   3402/Xvnc
    tcp    0    0 0.0.0.0:5902    0.0.0.0:*   LISTEN   8447/Xvnc
    tcp    0    0 0.0.0.0:6001    0.0.0.0:*   LISTEN   3402/Xvnc
    tcp    0    0 0.0.0.0:6002    0.0.0.0:*   LISTEN   8447/Xvnc

    The netstat output shows that there are two VNC servers running with display number 1 and 2. So, for the 3rd VNC server to start, the command should be vncserver :3.
     
  3. Edit $HOME/.vnc/xstartup file with your favourite editor, to un-comment these two lines in order to get the “normal” Linux Desktop view:
    unset SESSION_MANAGER
    exec /etc/X11/xinit/xinitrc
  4. Switch user to root account (i.e. su - root), edit /etc/sysconfig/vncservers with your favourite editor, append the display number and Linux user account information to the VNCSERVERS (an array variable). This configuration file defines who can start up VNC server with what display number via the VNCSERVERS array (that’s read by Linux start up scripts /etc/init.d/vncserver). For example,
    VNCSERVERS="1:root 2:tester 3:walker"

    That means there are three Linux user accounts (root, tester, and walker) will start up VNC server with display number 1, 2, and 3 respecitively, as Linux boots up.

    Note: Don’t simply add more than one VNCSERVERS array in /etc/sysconfig/vncserver configuration file. Otherwise, only the last VNCSERVERS array will be used.
     
  5. Make sure VNC server (the daemon or server process) is set to auto run upon system boots up to your runlevel. For example,
    [root@walkernews ~]# chkconfig ––list | grep vnc
    vncserver  0:off  1:off  2:off  3:off  4:off  5:on  6:off

    The ––list option of chkconfig shows VNC server is set to auto run in Linux runlevel 5 (the default multi-user runlevel with Linux Desktop console). To configure VNC server to auto run when Linux boots into runlevel 5, use the ––level with on option switch:
    chkconfig --level 5 vncserver on

Ok, that’s all you need. You should have the VNC server automatically running when Red Hat Linux boots up at runlevel 5. Although the guide might looks lengthy to you, but works involve shouldn’t take you more than 3 minutes after you get used with Linux!


Custom Search

  1. MySQL Dummy Guide: How To Display Long SQL Output In Page By Page Fashion? – Walker News July 6th, 2008 1:27 PM

    [...] second method doesn’t need to setup $PAGER environment variable. Before executing the SQL command, run the mysql command pager more to instruct MySQL Command-line [...]

  2. A Lenzo August 29th, 2008 2:20 AM

    Thanks for this tutorial. The method for how to turn on vncserver in particular was quite useful. Thank you.

  3. pescoe May 24th, 2009 6:23 PM

    Thanks a ton !

  4. Pi June 1st, 2009 12:18 AM

    Thanks a bunch!!

  5. Satheesh August 11th, 2009 11:53 PM

    Great., Working

  6. Gurjeet Singh September 28th, 2009 9:35 PM

    Thanks….This is a very good…Now I need not to go to test box to login after every reboot.

    Thanks

  7. Muhammad Ashfaq Anwar December 3rd, 2009 4:08 PM

    Appreciable, Thanks a lot. Excellent Approach.

    Cheers!

  8. emw February 16th, 2010 7:14 AM

    Finally…..somebody makes it clear……Thanks for the clarity.

    Note: Don’t simply add more than one VNCSERVERS array…

  9. John May 6th, 2010 11:54 PM

    Thanks!