Beim Booten habe ich
sudo x11vnc -xkb -noxrecord -forever -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw
über init.d ausführen
Es funktioniert und zeigt mir die Anmeldeaufforderung an, wenn ich einen VNC-Client verwende. Wenn ich mich jedoch abmelde, wird der VNC-Server heruntergefahren und ich muss mich per SSH anmelden, um ihn neu zu starten. Ich habe ein Skript gefunden und geändert, von dem ich glaube, dass es funktionieren sollte:
#!/bin/bash
if pgrep "x11vnc"
then
echo "Running"
else
echo "Stopped"
sudo x11vnc -xkb -noxrecord -forever -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw
fi
und das tut es (es ist in /usr/local/bin/testvnc, wenn ich es ausführe, jedoch mein Cron-Job:
* * * * * /usr/local/bin/testvnc
Es heißt, es sei „cat var/log/syslog | grep vnc“ ausgeführt worden, jedoch wird VNC NICHT gestartet.
Antwort1
Bei mir trat unter Kubuntu 16.04.1 das gleiche Problem auf, aber Ihr Skript gab mir eine Idee für eine Lösung.
Erstellen Sie eine Servicedatei für systemd:
sudo nano /etc/systemd/system/x11vnc.service
dies sind meine x11vnc.service
Dateien:
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target display-manager.service
[Service]
Type=simple
ExecStart=/bin/bash -c '/usr/bin/x11vnc -auth /var/run/sddm/* -noxdamage -norepeat -rfbauth /home/x11vnc/passwd -display :0 -rfbport 5900 -shared -o /var/log/x11vnc.log'
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Legen Sie die Berechtigungen zum Ausführen fest:
sudo chmod u+x /etc/systemd/system/x11vnc.service
Skript auf systemd neu laden und aktivieren:
sudo systemctl daemon-reload
sudo systemctl enable x11vnc.service
Wichtig:Achten Sie darauf, die Optionen -loop
und im Befehl nicht zu verwenden. Andernfalls kann x11vnc den Prozess nach einer Abmeldung nicht beenden und systemd kann den Dienst nicht neu starten.-forever
x11vnc