G
G
Gourii2021-02-16 10:35:05
VNC
Gourii, 2021-02-16 10:35:05

How to set x11vnc to start before user password is entered in Kubuntu 18.04?

Hello.
Can't get x11vnc to start normally before entering password to get access to current session and zero screen.

I set it up according to this instruction , restarted the computer, everything worked, connected from the phone. Today I turned on the computer and could not connect. I did not enter the user's password, I logged in via ssh, the x11vnc service is running, but it says in the logs that it was not possible to connect to display : 0 (as I understand it). x11vnc daemon autostart enabled.

x11vnc.service

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -display :0 -snapfb -rfbport 5900 -forever -rfbauth -loop /etc/x11vnc.pass -o /var/log/x11vnc .log

[Install]
WantedBy=multi-user.target

log

16/02/2021 10:08:00 passing arg to libvncserver: -rfbport
16/02/2021 10:08:00 passing arg to libvncserver: 5900
16/02/2021 10:08:00 passing arg to libvncserver: -rfbauth
16/02/2021 10:08:00 passing arg to libvncserver: /etc/x11vnc.pass
16/02/2021 10:08:00 x11vnc version: 0.9.13 lastmod: 2011-08-10 pid: 2627
No protocol specified
16/02/2021 10:08:00 XOpenDisplay(":0") failed.
16/02/2021 10:08:00 Trying again with XAUTHLOCALHOSTNAME=localhost ...
No protocol specified

16/02/2021 10:08:00 ***************************************
16/02/2021 10:08:00 *** XOpenDisplay failed (:0)

*** x11vnc was unable to open the X DISPLAY: ":0", it cannot continue.
*** There may be "Xlib:" error messages above with details about the failure.

Some tips and guidelines:

** An X server (the one you wish to view) must be running before x11vnc is
started: x11vnc does not start the X server. (however, see the -create
option if that is what you really want).

** You must use -display , -OR- set and export your $DISPLAY
environment variable to refer to the display of the desired X server.
- Usually the display is simply ":0" (in fact x11vnc uses this if you forget
to specify it), but in some multi-user situations it could be ":1", ":2",
or even ":137". Ask your administrator or a guru if you are having
difficulty determining what your X DISPLAY is.

** Next, you need to have sufficient permissions (Xauthority)
to connect to the X DISPLAY. Here are some Tips:

- Often, you just need to run x11vnc as the user logged into the X session.
So make sure to be that user when you type x11vnc.
- Being root is usually not enough because the incorrect MIT-MAGIC-COOKIE
file may be accessed. The cookie file contains the secret key that
allows x11vnc to connect to the desired X DISPLAY.
- You can explicitly indicate which MIT-MAGIC-COOKIE file should be used
by the -auth option, e.g.:
x11vnc -auth /home/someuser/.Xauthority -display :0
x11vnc -auth /tmp/.gdmzndVlR -display :0
you must have read permission for the auth file.
See also '-auth guess' and '-findauth' discussed below.

** If NO ONE is logged into an X session yet, but there is a greeter login
program like "gdm", "kdm", "xdm", or "dtlogin" running, you will need
to find and use the raw display manager MIT-MAGIC-COOKIE file.
Some examples for various display managers:

gdm: -auth /var/gdm/:0.Xauth
-auth /var/lib/gdm/:0.Xauth
kdm: -auth /var/lib/kdm/A:0-crWk72
-auth /var/run/xauth/A:0-crWk72
xdm: -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
dtlogin: -auth /var/dt/A:0-UgaaXa

Sometimes the command "ps wwwwaux | grep auth" can reveal the file location.

Starting with x11vnc 0.9.9 you can have it try to guess by using:

-auth guess

(see also the x11vnc -findauth option.)

Only root will have read permission for the file, and so x11vnc must be run
as root (or copy it). The random characters in the filenames will of course
change and the directory the cookie file resides in is system dependent.

See also: www.karlrunge.com/x11vnc/faq.html

I tried to configure x11vnc autostart like this, I put the x11vnc.conf file in /etc/init:
start on login-session-start
script
/usr/bin/x11vnc -display :0 -snapfb -rfbport 5900 -forever -rfbauth -loop /etc/x11vnc.pass -o /var/log/x11vnc.log
end script

I restarted the computer, could not connect to the desktop, connected via ssh, checked that the x11vnc service was not running.
I would appreciate your help!

Answer the question

In order to leave comments, you need to log in

1 answer(s)
G
Gourii, 2021-02-16
@Gourii

Managed to solve the problem.
Placed the daemon elsewhere /etc/systemd/system/x11vnc.service and changed it a bit:

[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service

[Service]
ExecStart=/usr/bin/x11vnc -display :0 -snapfb -rfbport 5900 -forever -rfbauth /etc/x11vnc.pass -o /var/log/x11vnc.log
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
Restartsec=2

[Install]
WantedBy=multi-user.target

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question