[gelöst] lokal angemeldeten X Benutzer finden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: lokal angemeldeten X Benutzer finden

Beitrag von smutbert » 05.10.2014 20:29:47

Danke, der Thread hat mir jetzt schon unglaublich viele weitere Ideen gebracht.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: [gelöst] lokal angemeldeten X Benutzer finden

Beitrag von smutbert » 10.10.2014 21:07:59

So sieht jetzt meine Lösung mit loginctl aus und hier viewtopic.php?f=37&t=151777 habe ich sie gleich ausprobiert :mrgreen:

Code: Alles auswählen

#!/bin/sh
for i in $(loginctl --no-legend list-sessions | awk '{print $1}')
do
        eval $(loginctl show-session ${i} | grep -e "Name=" -e "Remote=" -e "Type=" -e "Active=" -e "Display=")
        if [ ${Active} = "yes" ] && [ ${Type} = "x11" ] && [ ${Remote} = "no" ]
        then
                NameHome=$(getent passwd ${Name} | cut -d: -f6)
                export XAUTHORITY=${NameHome}/.Xauthority
                export DISPLAY=${Display}
                su ${Name} -c "notify-send 'hello world!'"
        fi
done
Danke noch einmal

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: AW: [gelöst] lokal angemeldeten X Benutzer finden

Beitrag von scientific » 11.10.2014 01:43:23

Erkennt deine Lösung auch Sessions, die mit startx gestartet sind?
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: [gelöst] lokal angemeldeten X Benutzer finden

Beitrag von smutbert » 11.10.2014 17:20:44

Nein, so wie sie hier steht, nicht. Als "Type" ist bei direkt von VTs aus gestarteten Xorg bei meinen Tests immer "tty" und nicht "x11" herausgekommen. Man könnte einfach die Abfrage nach dem "Type" weglassen, dann würde schlimmstenfalls ein fruchtloses notify-send an eine Anmeldung im Textmodus abgesetzt, aber dasselbe gilt ja auch für X-Sessions ohne notification-daemon.

Im anderen Thread hat Cae die Verwendung von eval (noch dazu als root) für die Ausgabe von loginctl angekreidet und das ist wphl auch wirklich nicht besonders schön, aber ich habe noch keine bessere Lösung gefunden, die mir gefällt.

Antworten