Ich kann dies nicht vollständig versuchen, da auf allen meinen Rechnern root deaktiviert ist.
Mit dem who
Befehl können Sie ermitteln, auf welcher Anzeige sich ein Benutzer befindet . Die letzte Spalte der Ausgabe ist normalerweise das DISPLAY, an dem der Benutzer angemeldet ist. So etwas könnte verwendet werden, um nur das Display zu erfassen (es gibt wahrscheinlich eine weitaus effizientere Methode, zögern Sie nicht, Änderungen anzubieten):
who | grep -m1 ^username.*\( | awk '{print $5}' | sed 's/[(|)]//g'
Dann, um einen grafischen X-Befehl auf dieser Anzeige zu starten:
DISPLAY=:0 firefox &
Dabei wird 0 durch die Anzeige ersetzt, die Sie im ersten Befehl gefunden haben, und Firefox wird durch den Befehl ersetzt, den Sie ausführen möchten. Sie können dies in ein Shell-Skript einfügen und einfach eine Variable verwenden.
Der nächste Teil ist der Teil, den ich noch nicht getestet habe, aber ich verstehe nicht, warum dies nicht möglich sein sollte:
su username -c "DISPLAY=:0 firefox"
um den X-Befehl als dieser Benutzer zu starten.
naga_plugged.pl
Skript beendet wird (oder in den Hintergrund tritt), daudev
es darauf wartet, dass es beendet wird.