Fedora VNC Service Startup

Published by Torry Crass on

I ran into some trouble getting VNC to load up after a system reboot.  This is on a Fedora Core 18 system but may also be somewhat applicable to other versions of FC and CentOS systems as well.

This post assumes you already have VNC installed but are just having trouble getting it to start up.

In order to find out what's going on with the service you will probably run either of the following commands (or if you're looking to start it, you'll change status to start) (NOTE: commands will probably need to be run using sudo):

sudo systemctl status vncserver.service


sudo service vncserver status

Upon execution of the listed command you'll recieve an error indicating that things did not go as planned:

Loaded: error (Reason: No such file or directory)
Active: inactive (dead)

Clearly not what you were hoping to see.  As it turns out a likely cause is because the service has only been installed and configured to run manually, not setup to allow the service to start automatically or through service management tools.

Several references will tell you to check /etc/sysconfig/vncservers which will then point you to /lib/systemd/sysstem/[email protected] and in the right direction.

The second reference is the file that you need.  This is a template to be able to start the vncservices as you expect.  Open the file with your favorite text editor and read the top of it.  The file should say something like this:

# Quick HowTo:
# 1. Copy this file to /etc/systemd/system/vncserver@:<display>.service
# 2. Edit "User" and "ExecStart" variables appropriately
# (ExecStart should be "/usr/bin/vncserver %i -arg1 -arg2")
​# 3. Run `systemctl daemon-reload`
# 4. Run `systemctl enable vncserver@:<display>.service`

Perform the steps as it states.  It should be noted that <display> should be replaced by your designated display instance.  Most people set the <display> variable to "1", meaning that your file name would then be vncserver@:1.service.  The variable <USER> should be changed entirely to the username that you are running the vncserver connection under.

Once these steps are complete, you should have a new file under /etc/systemd/system/ with the adequate entries.

Now, all you should need to do is run the service/systemctl enable command followed by the start command as I've included below.  Please note that the ln -s command listed is the output of the systemctl command in the line above, you should not need to enter it.

[user@host system]# sudo systemctl enable vncserver@:1.service
ln -s '/etc/systemd/system/vncserver@:1.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:1.service'
[user@host system]# sudo systemctl start vncserver@:1.service

Assuming there are no additional errors you should be able to connect into your VNC session at this time.



Leave a Reply