Kubuntu mit sddm: sddm-greeter wird beendet, wenn Bildschirm an DP oder HDMI eingesteckt

Hallo,

wir haben Kubuntu 24.04 als Clients laufen, geht auch alles inkl. Anmeldung mit dem sddm (im Wayland-Modus).
Wir haben aber folgendes Problem:
Wenn man das DP- oder HDMI-Kabel am Rechner abzieht, läuft der sddm-greeter weiter.
Wenn man das Kabel wieder einsteckt, beendet sich der sddm-greeter, der User sieht nur einen schwarzen Bildschirm mit blinkendem Cursor ganz oben links.
Wenn man auf der Konsole sddm restartet, kommt auf dem Bildschirm wieder die sddm-Anmeldemaske.

Im journal steht dann:

Okt 22 13:50:41 r219-04 sddm[1548]: Greeter session started successfully
Okt 22 13:50:41 r219-04 sddm[1548]: Message received from greeter: Connect
Okt 22 13:55:23 r219-04 sddm[1548]: Auth: sddm-helper exited successfully
Okt 22 13:55:23 r219-04 sddm[1548]: Greeter stopped. SDDM::Auth::HELPER_SUCCESS

Das Problem besteht bei uns, weil der Strom für den hdmi-Switch und den Monitor an unseren Medientischen per zentralem Schalter eingeschaltet werden, während die Rechner (für’s WOL) dauernd am Strom hängen. Wenn nun der Rechner hochgefahren wird, der Tisch aber noch nicht „an“ ist, erhalten die User nach Einschalten des Tisches kein Bild auf dem Monitor, weil sich der greeter verabschiedet hat.

Kennt jemand das Problem und hat eine Lösung oder ersatzweise evt. schon ein Script zur Wiederbelebung des greeters gebastelt?

Viele Grüße,
Stefan

Seltsam, der sddm service steht ja auf „restart always“.

Gib’ts für den greeter nochmal einen extraservice? mit welchem befehl startest du denn den greeter neu?

Notfalls pack den restart befehl in einen cron job, auch wenn das sehr hässlich wäre …

Noch eine Idee: Habt ihr bei dem schwarzen Bildschirm mal windows p gedrückt? evtl. ist der greeter auf dem falschen Bildschirm (wobei das unwahrscheinlich ist, wegen des blinkenden cursors).

Hallo Andreas,

nein, der Bildschirm stimmt, im journal wird das Beenden des greeters ja auch vermerkt.

Wir haben jetzt in der Tat einen service eingerichtet, der den greeter sofort (deshalb service, nicht cron) restartet, wenn er beendet wurde - außer, es gibt einen erfolgreichen Login, dann sollte der greeter natürlich nicht wieder starten, sondern die Sache Plasma überlassen.

In der Tat etwas hässlich, aber es funktioniert und die Kollegen meckern nicht mehr…

Viele Grüße,
Stefan

Würde mich interessieren, vielleicht kannst du den Service hier mal posten. Schön, dass ihr es hinbekommen habt!
Viele Grüße, Andreas

Hallo Andreas,

hier die oben von Stefan erwähnte Lösung per „sddm-monitor“:

/usr/local/bin/sddm-monitor

#!/bin/bash

# Überwache das Journal auf Ereignis
journalctl -f -u sddm.service | while read line; do
        if [[ "$line" == *"Greeter stopped. SDDM"* ]]; then
                echo "Greeter stopped! Check Authentication..."
                if ! journalctl -u sddm.service -r -n 20 | grep -o "Authentication for user  \".*\"  successful"; then
                        echo "Greeter stopped! No Authentication. Restart sddm.service..."
                        systemctl restart sddm.service
                else
                        echo "Do not restart sddm.service..."
                fi
        fi
done

/etc/systemd/system/sddm-monitor.service

[Unit]
Description=sddm Monitor Service
After=network.target

[Service]
ExecStart=/usr/local/bin/sddm-monitor
Restart=always
User=root
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

Grüße
Daniel

2 „Gefällt mir“