staging.inyokaproject.org

Konsolenbefehl für 'Abmelden'?

Status: Ungelöst | Ubuntu-Version: Kubuntu 20.04 (Focal Fossa)
Antworten |

Nachtgold

Anmeldungsdatum:
16. Oktober 2020

Beiträge: 27

Hallöle,

diese Information konnte ich tatsächlich nicht über eine Suchmaschine finden.

Ich suche nach dem Konsolenbefehl, der das bewirkt, was unter "Verlassen –> Abmelden" bewirkt wird.

["logout" gilt nicht;)]

V. f. G.

charly-ax

Avatar von charly-ax

Anmeldungsdatum:
19. März 2013

Beiträge: 1827

Schau mal in diesen Absatz im Wiki. Das könnte das sein, was du suchst. Mit den Parametern kann man festlegen, ob herunter gefahren, neu gestartet oder abgemeldet werden soll. Ich kann es nicht ausprobieren, da ich Gnome nutze und kein KDE.

https://wiki.ubuntuusers.de/Herunterfahren/#KDE

Gruß, Holger

sh4711

Anmeldungsdatum:
13. Februar 2011

Beiträge: 1201

Hallo,

da ich kein KDE habe ungetestet:

dbus-send --print-reply --dest=org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout int32:0 int32:1 int32:0  # D-Bus-Befehl um jetzt zu versuchen den Benutzer abzumelden

Quelle:

Herunterfahren (Abschnitt „KDE“)

Nachtgold

(Themenstarter)

Anmeldungsdatum:
16. Oktober 2020

Beiträge: 27

sh4711 schrieb:

Hallo,

da ich kein KDE habe ungetestet:

dbus-send --print-reply --dest=org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout int32:0 int32:1 int32:0  # D-Bus-Befehl um jetzt zu versuchen den Benutzer abzumelden

Quelle:

Herunterfahren (Abschnitt „KDE“)

Danke für den Link, aber ich kann damit eigentlich nichts anfangen / keine Ahnung, was "dbus" ist. Ich hätte gerne lediglich so etwas wie "shutdown -r now" für Abmelden. Das müsste es doch geben?

Hintergrund: Manchmal habe ich nach dem Hochfahren "Grafikwirrwarr", und muss direkt mittels Konsole neu starten (das Startmenü ist nicht mehr zu erkennen, daher geht es nur über die Konsole). Nun hätte mich interessiert, ob ich den Neustart sparen kann, und das Problem mittels Abmeldung / neu Anmelden auch behoben werden kann. Der Fehler passiert, nicht rekonstruierbar, in ca. 20 % aller Fälle beim Hochfahren (nur bei Kaltstart, nie bei Neustart).

Frikadelle

Anmeldungsdatum:
23. Juni 2020

Beiträge: 235

Nachtgold Vieleicht suchst du sowas ohne sudo

systemctl poweroff

Du kannst aber auch

killall -u $USER

zum direkten Abmelden nutzen

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Frikadelle schrieb:

Nachtgold Vieleicht suchst du sowas ohne sudo

systemctl poweroff

Es geht hier ums Abmelden - nicht um Herunterfahren.

Du kannst aber auch

killall -u $USER

zum direkten Abmelden nutzen

Das ist die Holzhammermehtode, die zwar vermutlich funktioniert, aber möglicherweise mehr Schaden anrichtet als der Logoout über die UI.

Unter 20.04 bietet sich da eher loginctl. Wenn Du Dich aus der aktuellen Session abmelden willst, geht loginctl kill-session $XDG_SESSION_ID. Wenn Du das von außerhalb machen willst (was hier der Fall zu sein scheint), kannst Du entwder manuell mit loginctl list-sessions nachschauen, welche Sessions es gibt. Oder, unter der Annahme, dass es nur eine aktive Session gibt, kannst Du das auch über loginctl kill-session $(loginctl list-sessions | awk 'NR==2 {print $1}') direkt machen. Das terminiert dann die erste gelistete Session.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Nachtgold schrieb:

[…] Konsolenbefehl, der das bewirkt, was unter "Verlassen –> Abmelden" bewirkt wird.

loginctl list-sessions
loginctl terminate-session 999

Anstelle 999 musst Du die zutreffende Session-ID einsetzen.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

kB schrieb:

loginctl terminate-session 999

Ah ja, "terminate-session" ist vermutlich besser als "kill-session".

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Fürs Abmelden nutze ich immer loginctl kill-user $USER. Das ist sicher nicht die sanfteste Methode, aber sie funktioniert so, dass auch sddm nicht hängt, wenn man sich bspw. in einem zweiten XServer angemeldet hat. In dem Fall ist auch der Plasma-eigene Logout-Button nicht ausreichend (trotz abgemeldetem tty denken gdm/sddm, dass da noch eine Session läuft).

charly-ax

Avatar von charly-ax

Anmeldungsdatum:
19. März 2013

Beiträge: 1827

ChickenLipsRfun2eat schrieb:

Fürs Abmelden nutze ich immer loginctl kill-user $USER...

Kannst du als Plasma-Nutzer etwas dazu sagen, ob der im nachstehend verlinkten Wikiartikel genannte ...

charly-ax schrieb:

https://wiki.ubuntuusers.de/Herunterfahren/#KDE

... bzw. wie von sh4711 aufgeführte: Befehl so funktionieren würde?

dbus-send --print-reply --dest=org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout int32:0 int32:1 int32:0  # D-Bus-Befehl um jetzt zu versuchen den Benutzer abzumelden

Diesen bräuchte Nachtgold ja auch nicht auswendig lernen, sondern könnte sich fürs Terminal einen Alias oder einen Shortcut für die grafische Oberfläche anlegen.

Nachtgold

(Themenstarter)

Anmeldungsdatum:
16. Oktober 2020

Beiträge: 27

kB schrieb:

Nachtgold schrieb:

[…] Konsolenbefehl, der das bewirkt, was unter "Verlassen –> Abmelden" bewirkt wird.

loginctl list-sessions
loginctl terminate-session 999

Anstelle 999 musst Du die zutreffende Session-ID einsetzen.

Ok, habe ich mir notiert. Bisher ist der Fall noch nicht eingetreten, mein kleines Problem damit evtl. lösen zu können.

Jedenfalls: VIELEN DANK AN ALLE!

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

charly-ax schrieb:

Kannst du als Plasma-Nutzer etwas dazu sagen, ob der im nachstehend verlinkten Wikiartikel genannte ...

Plasma-Nutzer ist relativ. Ich nutze was selbst gefrickeltes aus allen Welten 😉
Generell funktioniert das aber, ja, wobei die Verwendung von qdbus (unter Qt-Umgebungen vorinstalliert) bequemer ist:

qdbus org.kde.ksmserver /KSMServer logout x y z

Was die Zahlen angeht, kommt es darauf an, was man will. Vom Gedankengang her geht es ums Herunterfahren. Logout ist nur ein Teilschritt dessen.
Die erste Zahl ist die Bestätigung, diese kann 0 oder 1 sein.
Die zweite ist die Art des Herunterfahrens. Im Falle eines Logouts 0 (Typ:kein shutdown) oder 3 (Typ:Logout). 3 wäre also korrekt, tut aber das selbe wie 0. 1 wäre reboot und 2 halt.
Die dritte Zahl ist der Modus: 0 wartet darauf, dass alle aktiven Sessions beendet werden vor dem Herunterfahren, 1 bedeutet „jetzt versuchen“: gibt es noch aktive Sessions, passiert nix. 2 bedeutet „erzwingen“ und 3 „Nutzer fragen“ (per Popup).

Ich vermute, dass die dritte Zahl beim Logout irrelevant ist, aber das ist nur geraten 😉 Daher würde ich im Zweifel die 3 nehmen ⇨

qdbus org.kde.ksmserver /KSMServer logout 0 3 3 

Alternativ könnte Ctrl-Alt-Shift-Entf nutzen, um sich ohne Rückmeldung abzumelden. Mit Bild ab anstatt Entf herunterfahren.

/edit: Programmname korrigiert.

charly-ax

Avatar von charly-ax

Anmeldungsdatum:
19. März 2013

Beiträge: 1827

ChickenLipsRfun2eat schrieb:

Generell funktioniert das aber...

Danke für deine Rückmeldung. Mal schauen, was Nachtgold daraus machen kann.

Nachtgold

(Themenstarter)

Anmeldungsdatum:
16. Oktober 2020

Beiträge: 27

charly-ax schrieb:

ChickenLipsRfun2eat schrieb:

Generell funktioniert das aber...

Danke für deine Rückmeldung. Mal schauen, was Nachtgold daraus machen kann.

Ja, funktioniert - also ich muss nun nicht mehr neu Starten bei Grafikwirrwarr nach dem Hochfahren - ist eine kleine Hilfe (obwohl es nun nur noch sehr selten vorgekommen ist, daher erst jetzt die Antwort).

SO:

loginctl list-sessions //Session-Nr. herausfinden loginctl terminate-session 3 //3 als Beispiel für die Nr. der "Sitzung".

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Nachtgold schrieb:

…ich muss nun nicht mehr neu Starten bei Grafikwirrwarr nach dem Hochfahren…

Abgesehen davon, dass das vermutlich behebbar ist: Da böte sich eher ein kquitapp5 plasmashell && kstart5 plasmashell an. Oder falls die Problematik von KWin kommt ein kwin --replace.

Antworten |