nach einem Connect ein Programm unter X-Window starten

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
SubOptimal
Beiträge: 1709
Registriert: 10.01.2005 23:25:46
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: bei Frankfurt

nach einem Connect ein Programm unter X-Window starten

Beitrag von SubOptimal » 01.12.2008 12:41:41

Hi,

ich möchte gern, wenn eine Netzwerkverbindung durch network-manager hergestellt wurde, ein Programm (das X-Window benötigt) mit den Rechten des unter X angemeldeten User starten lassen. In /etc/network/if-pre-up.d ein Skript zu erstellen funktioniert ja in diesem Fall nicht. Den User zu ermitteln wäre da sicher das kleinere Problem, nur wie kann ich ihm aus dem Skript heraus das Programm "auf den Desktop zaubern"?
Im Augenblick starte ich im Gnome ein Skript welches 5 Minuten lang, im 5 Sekundenabstand, schaut ob eine Netzwerkverbindung aufgebaut wurde und bei hergestellter Verbindung das Programm startet und sich dann beendet. Wird die Netzwerkverbindung erst später aufgebaut, dann klappt das so natürlich auch nicht mehr. Das Skript endlos laufen lassen, möcht ich auch nicht unbedingt.
Die WLAN Netzwerkverbindung wird durch den network-manager automatisch aufgebaut, sobald sich der User angemeldet hat. Das WLAN ist nicht immer vorhanden, daher möchte ich das Netzwerk auch nicht statisch in /etc/network/interfaces konfigurieren.

SubOptimal

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: nach einem Connect ein Programm unter X-Window starten

Beitrag von cosmac » 01.12.2008 13:16:31

hi,
SubOptimal hat geschrieben:In /etc/network/if-pre-up.d ein Skript zu erstellen funktioniert ja in diesem Fall nicht. Den User zu ermitteln wäre da sicher das kleinere Problem, nur wie kann ich ihm aus dem Skript heraus das Programm "auf den Desktop zaubern"?
in if-pre-up.d wird es wahrscheinlich zu früh ausgeführt, aber es gibt ja noch if-up.d. Der eigentliche Programmaufruf funktioniert dann (meistens) so:

Code: Alles auswählen

su -l -c '/pfad/zum/programm --display :0' $USER
(meistens), weil manche Programme "-display" mit nur einem '-' brauchen und ganz seltene Programme diese Option nicht kennen.
Evt. musst du noch was dagegen tun, dass das Script bis zum Beenden des Programms blockiert wird.
Beware of programmers who carry screwdrivers.

Antworten