systemd und restart on-failure

25/12/2015 - 18:53 von Marcus Jodorf | Report spam
Ich hab hier leider eine Kiste mit systemd an der Backe und renne gerade
prompt in leichte Probleme:

Es geht darum, x11vnc in Verbindung mit lightdm zuverlàssig laufen zu lassen.

Bisher war das simpel: Über „display-setup-script“ in lightdm.conf x11vnc
einfach angestartet und gut.

Jetzt in der schönen neuen Welt mit systemd geht das offenbar so nicht
mehr, was an sich schon ziemlich àrgerlich ist.

Aber gut, ich hab nun folgendes gemacht:

,-[ /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 -xkb -repeat -allow 127.0.0.1 -display :0 -auth /var/run/lightdm/root/:0 -rfbauth /etc/X11/x11vnc.passwd -rfbport 5900 -forever -bg -o /var/log/x11vnc.log
| ExecStop=/usr/bin/killall x11vnc
| Restart=on-failure
| RestartSec
`-

Tut soweit und x11vnc làuft und funktioniert erst mal.

Nach „systemctl stop lightdm.service“ (welcher Vollspacko ist
eigentlich darauf gekommen, das command bei systemctl in die Mitte vor
den Service zu setzen? Da tippt man sich ja immer einen Wolf.)
passiert dann aber das:

,-[ systemctl status -l x11vnc.service ]
| systemctl status -l x11vnc.service
| ● x11vnc.service - VNC Server for X11
| Loaded: loaded (/etc/systemd/system/x11vnc.service; static)
| Active: failed (Result: exit-code) since Fri 2015-12-25 18:14:48 CET; 17min ago
| Process: 1337 ExecStop=/usr/bin/killall x11vnc (code=exited, status=0/SUCCESS)
| Process: 1333 ExecStart=/usr/bin/x11vnc -xkb -repeat -allow 127.0.0.1,192.168.10. -display :0 -auth /var/run/lightdm/root/:0 -rfbauth /etc/X11/x11vnc.passwd -rfbport 5900 -forever -bg -o /var/log/x11vnc.log (code=exited, status=0/SUCCESS)
| Main PID: 1334 (code=exited, status=2)
|
| Dec 25 18:14:43 PS-WS69 x11vnc[1333]: PORTY00
| Dec 25 18:14:48 PS-WS69 systemd[1]: x11vnc.service: main process exited, code=exited, status=2/INVALIDARGUMENT
| Dec 25 18:14:48 PS-WS69 systemd[1]: Unit x11vnc.service entered failed state.
`-

...und damit ist das Ding tot und kommt auch nicht mehr hoch, wenn man
lightdm wieder anstartet.
Umgekehrt startet aber lightdm wieder automatisch mit, wenn man
„systemctl start x11vnc.service“ ausführt.

Was alles nicht so ganz Sinn der Sache ist.
x11vnc soll einfach immer nach lightdm automatisch starten oder so lange
neue Startversuche in einem gewissen Intervall machen, bis lightdm
wieder da ist. Mit „Restart=on-failure“ geht es anscheinend aber nicht
(Warum?).

Wie macht man sowas mit systemd richtig[tm]?


Frohe Weihnachten,

Marcus
⚂⚃
 

Lesen sie die antworten

#1 Marcus Jodorf
27/12/2015 - 04:50 | Warnen spam
Marcus Jodorf schrieb:

Ich mach mal die Ingrid:

Mit „Restart=on-failure“ geht es anscheinend aber nicht (Warum?).



Ist mir immer noch schleierhaft, aber so funktioniert es immerhin
halbwegs zuverlàssig:

,-[ /etc/systemd/system/x11vnc.service ]
| [Unit]
| Description=VNC Server for X11
| Requires=display-manager.service
| After=display-manager.service
|
|
| [Service]
| Type=simple
| ExecStart=/usr/bin/x11vnc -xkb -repeat -allow 127.0.0.1 -display :0 -auth guess -rfbauth /etc/X11/x11vnc.passwd -rfbport 5900 -forever -loop -o /var/log/x11vnc.log
| Restart=on-failure
| RestartSec
|
|
| [Install]
| WantedBy=display-manager.service
`-

Was'n Krampf.

Und prompt in das nàchste Problem gelaufen. Da die Leute offenbar nicht fàhig
sind *), funktionierende X Locker zu schreiben, ist man bei
light-locker auf die Idee gekommen, stattdessen einfach das Problem zu
umgehen und VTs zu switchen.
D.h. wenn man per vnc connected ist und der Screenlock zuschlàgt, ist
man ausgesperrt.

Abhilfe mal wieder:
apt-get remove light-locker
apt-get install xscreensaver



Gruß,

Marcus
⚂⚃

*) https://www.jwz.org/blog/2015/04/i-...-so-again/

Ähnliche fragen