5

I am using archlinux version 3.10.27-1-ARCH on my remote PC and I would like it to launch x11vnc server on successful bootup. Though i can start the x11vnc server manually, I am having trouble starting it up automatically. The configuration of /etc/systemd/system/x11vnc.service is as follows


[Unit]
Description=VNC Server for X11
Requires=graphical.target
After=graphical.target

[Service]
ExecStart=/usr/bin/x11vnc -display :0 -nopw


The status of the service using command:systemctl status x11vnc
x11vnc.service - VNC Server for X11
   Loaded: loaded (/etc/systemd/system/x11vnc.service; enabled)
   Active: inactive (dead)


And the dBus output of command: dmesg|grep x11vnc
[    5.467201] systemd[1]: Found dependency on x11vnc.service/start
[    5.467285] systemd[1]: Breaking ordering cycle by deleting job x11vnc.service/start
[    5.467335] systemd[1]: Job x11vnc.service/start deleted to break ordering cycle starting with graphical.target/start

I do feel from the dmesg output there is a cyclic dependency, but I am not able to understand what.

Alex Stragies
  • 5,857
  • 2
  • 32
  • 56
zeena
  • 53
  • 1
  • 1
  • 3

2 Answers2

2

I found this thread which shows a similar task of setting up x11vnc as a Systemd service. The thread is titled: Index» Newbie Corner» how to enable x11vnc at startup using systemd ?.

From a comment in that thread

  1. Create the file: /etc/systemd/system/x11vnc.service

    [Unit]
    Description=VNC Server for X11
    Requires=display-manager.service
    After=display-manager.service
    
    [Service]
    Type=forking
    ExecStart=/usr/bin/x11vnc -norc -forever -shared -bg -rfbauth /etc/x11vnc.pass -allow 192.168.1. -autoport 5900 -o /var/log/x11vnc.log
    
  2. Create the file: /etc/systemd/system/graphical.target

    #  This file is part of systemd.
    #
    #  systemd is free software; you can redistribute it and/or modify it
    #  under the terms of the GNU Lesser General Public License as published by
    #  the Free Software Foundation; either version 2.1 of the License, or
    #  (at your option) any later version.
    
    [Unit]
    Description=Graphical Interface
    Documentation=man:systemd.special(7)
    Requires=multi-user.target
    After=multi-user.target
    Conflicts=rescue.target
    Wants=display-manager.service
    Wants=x11vnc.service
    AllowIsolate=yes
    
    [Install]
    Alias=default.target
    
  3. Enable Systemd service

    $ sudo systemctl enable graphical.target
    

    This should create a link like this:

    /etc/systemd/system/default.target -> /etc/systemd/system/graphical.target

  4. Reboot

slm
  • 363,520
  • 117
  • 767
  • 871
  • Thanks for your answer. Though I did see the link earlier during my google searches, I did not try it for some reason. I edited my `x11vnc.service` with yours as starting point, and now the x11vnc server starts up automatically on bootup – zeena Jan 22 '14 at 22:36
  • @zeena - That wonderful news, glad this resolved your issue, thanks for the Q! – slm Jan 22 '14 at 23:05
0

Just for closure, the x11vnc.service that made it happen for me is as follows

[Unit]
Description=VNC Server for X11  
Requires=display-manager.service
After=display-manager.service

[Service]
Type=forking
ExecStart=/usr/bin/x11vnc -norc -forever -shared -bg -rfbauth /etc/x11vnc.pass -autoport 5900 -o /var/log/x11vnc.log -auth /var/run/slim.auth

the graphical.target and steps are identical to answer given by slm above.

zeena
  • 53
  • 1
  • 1
  • 3