Problem mit blockierten Ressourcen

Direkte Linux-Programmierung, POSIX
Antworten
Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Problem mit blockierten Ressourcen

Beitrag von cloidnerux » Sa Sep 11, 2010 7:36 pm

Ich habe auf meinem Laptop mit Ubuntu 10.04 mehre Nutzer. Jetzt habe ich aber folgendes Problem:
Wenn ich mich auf einen Account einlogge und dann nur die Sitzung wechsle, anstatt mich abzumelden, dann sind Ressourcen wie Compiz oder das Netzwerk gesperrt.

Meine Frage ist nun, wie umgehe ich das ganze?
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Problem mit blockierten Ressourcen

Beitrag von fat-lobyte » Sa Sep 11, 2010 9:32 pm

Ich weiß nicht ob man mehrere X-Sessions unter dem gleichen Benutzer laufen lassen kann, zumindest nicht mit der Standardeinstellung. Es werden bei jeder Session nämlich einige Dateien in deinem Homeverzeichnis erstellt, die eigentlich eindeutig sein sollten (irgendwelche Datensockets...)

Wenn dus allerdings hinbekommst würd ich schon gern wissen wie...
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Problem mit blockierten Ressourcen

Beitrag von cloidnerux » So Sep 12, 2010 11:12 am

So, für die Blockierte Netzwerk-Resource habe ich folgenden Workaround:
http://blog.jacobodevera.com/2009/07/30 ... users.html
Das ganze muss man jetzt nur blöderweise bei jedem Nutzerwechsel Manuell ausführen.
Jetzt suche ich nur noch eine Möglichkeit, für alle Nutzer ein script anzulegen, das automatisch bei jedem Nutzerwechsel gestartet wird.
Aber wie stelle ich das an?
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Problem mit blockierten Ressourcen

Beitrag von fat-lobyte » So Sep 12, 2010 11:29 am

cloidnerux hat geschrieben:Jetzt suche ich nur noch eine Möglichkeit, für alle Nutzer ein script anzulegen, das automatisch bei jedem Nutzerwechsel gestartet wird.
Aber wie stelle ich das an?
Du hast die Mögllichkeit die /etc/X11/Xsession zu verändern oder Skripte im Verzeichnis /etc/X11/Xsession.d/ abzulegen. Diese sollten dann bei jedem grafischen Login ausgeführt werden. Genauere Infos mit

Code: Alles auswählen

man 5 Xsession
Wenn du deine Skripte auch mit nicht-grafischen Logins aufrufen willst, wäre wohl /etc/profile wohl die richtige Datei.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Problem mit blockierten Ressourcen

Beitrag von cloidnerux » So Sep 12, 2010 11:37 am

Ok, um mich nochmal zu Präzisieren:
Die Probleme treten nur auf, wenn ich mich auf 1 Account einlogge und dann den Benutzer wechsele.
Nicht wenn ich mich auslogge/abmelde und dann auf einem anderen Account neu einlogge.
Das heißt, ich muss mein Script an den Prozess des Nutzerwechsels knüpfen, nicht an den des An-Abmeldens.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Problem mit blockierten Ressourcen

Beitrag von fat-lobyte » So Sep 12, 2010 12:01 pm

cloidnerux hat geschrieben:Ok, um mich nochmal zu Präzisieren:
Die Probleme treten nur auf, wenn ich mich auf 1 Account einlogge und dann den Benutzer wechsele.
Nicht wenn ich mich auslogge/abmelde und dann auf einem anderen Account neu einlogge.
Das heißt, ich muss mein Script an den Prozess des Nutzerwechsels knüpfen, nicht an den des An-Abmeldens.
Leider bin ich kein Experte was den X-Server und den Login Prozess betrifft, deswegen kann ich da wahrscheinlich nicht helfen.

Aber soweit ich informiert bin, ist ein "Benutzerwechsel" nichts anderes als ein zweiter, zusätzlicher Login. Bei mir Beispielsweise wird, (mit gdm3) für jeden Benutzer jeweils ein Prozess mit den Namen "gdm-simple-slave" und "gdm-session-worker" gestartet. Tatsächlich wird sogar eine Zweite virtuelle Konsole erstellt (normalerweise Ctrl-Alt-F7, bei Benutzerwechsel noch Ctrl-Alt-F8 dazu). Meine Vermutung ist, dass bei jedem Login und Benutzerwechsel dieser Prozess die Xsession ausliest.
Das wäre zumindest logisch, denn es muss für jeden Benutzer schließlich die ganze Session neu aufgesetzt werden. Mach doch einfach mal nen kleinen Test, und schreib ein kurzes Skript, das beim login eine Datei anlegt:

Code: Alles auswählen

/usr/bin/printf 'Login passiert!\n' > $(mktemp)
Und speichere es als /etc/X11/Xsession.d/99custom_loginpassiert
Haters gonna hate, potatoes gonna potate.

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Problem mit blockierten Ressourcen

Beitrag von nufan » So Sep 12, 2010 12:10 pm

cloidnerux hat geschrieben:Das heißt, ich muss mein Script an den Prozess des Nutzerwechsels knüpfen, nicht an den des An-Abmeldens.
... oder du knüpfst dein Skript an den Prozess des Anmeldens und prüfst ob bereits andere Benutzer an der grafischen Oberfläche angemeldet sind. "who" sollte die benötigten Informationen liefern.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Problem mit blockierten Ressourcen

Beitrag von cloidnerux » So Sep 12, 2010 5:10 pm

... oder du knüpfst dein Skript an den Prozess des Anmeldens und prüfst ob bereits andere Benutzer an der grafischen Oberfläche angemeldet sind. "who" sollte die benötigten Informationen liefern.
Das löst aber nicht mein Problem, mir geht es hier Konkret darum, das 2 Konten gleichzeitig angemeldet sind und dadurch Dinge wie der netzwer-manager oder Compiz durch 1 Nutzer blockiert sind. Beim direkten anmelden kann ich ja einfach über Xsession arbeiten, wenn ich aber wieder wechsel, ohne einen Account abzumelden, dann habe ich doch wieder die Probleme.
Meine Idee bisher das zu lösen, wäre im xscreensaver an der richtigen stelle ein Aufruf von system("sh /etc/onlogin") einzubauen, um das Script "onlogin" auszuführen, fragt mich aber noch nicht wo diese stelle ist.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten