Von udev gestartete Skripte haben keinen DISPLAY-Zugriff mehr?

Ich habe ein Skript, von dem ausgeführt wirdudev wenn ich mein externes Laufwerk anschließe. Es hat immer funktioniert. Aber nach dem Upgrade vonLinux 3.8 / Xorg 1.12 / Mint 14 (Ubuntu 12.10 kompatibel) zuLinux 3.11 / Xorg 1.14 / Mint 16 (Ubuntu 13.10 kompatibel), es funktioniert nicht mehr.

Das Skript wird weiterhin ausgeführt, aber keiner der Befehle, für die die Anzeige erforderlich ist, funktioniert. Ich habe das herausgefunden, indem ich dieudev Daemon und manuell ausführenudevd --debug für ausführliche Ausgabe (mehr unten).

In diesem Skript wurde gearbeitetMint 14 / 12.10:

export DISPLAY=:0
UUID=$1
DEV=$2

notify-send -t 700 "mounting $DEV ($UUID)"
gnome-terminal -t "Backing up home..." -x rsync long line of data
zenity --warning --text="Done."

Aber nicht mehr inMint 16 / 13.10. Für den Fall, dass Sie sich über mögliche Lösungen wundern, habe ich nach und nach Dinge hinzugefügt und jetzt sieht es so aus:

export DISPLAY=:0.0

xhost +local:
xhost +si:localuser:root
xhost +

DISPLAY=:0.0
export DISPLAY=:0.0
UUID=$1
DEV=$2

notify-send -t 700 "mounting $DEV ($UUID)"
gnome-terminal -t "Backing up home..." -x rsync long line of data
zenity --warning --text="Done." --display=:0.0

Aber es geht immer noch nicht.udevd --debug zeigt noch folgendes:

'(err) 'No protocol specified'
'(err) ''
'(err) '** (gnome-terminal:24171): WARNING **: Could not open X display'
'(err) 'No protocol specified'
'(err) 'Failed to parse arguments: Cannot open display: '
'(err) 'No protocol specified'
'(err) ''
'(err) '** (zenity:24173): WARNING **: Could not open X display'
'(err) 'No protocol specified'
'(err) ''
'(err) '(zenity:24173): Gtk-WARNING **: cannot open display: :0.0'
'(err) 'No protocol specified'

Beachten Sie, dass jede Bash-Logik funktioniert. Echo Test Vars zu>>/tmp/test.log funktioniert. Es geht nur um den Zugriff auf das Display, das nicht mehr funktioniert.

Das macht mich verrückt. Was ist der richtige Weg, um dies jetzt zu erreichen?

Update 20.12.2013

Also, im vorherigen Ubuntu,X Befehle würden automatisch den Weg zum aktuellen findenX using user.

Nun scheine ich diese beiden Dinge zu brauchenjedes Mal:

Auf derX using user:xhost +si:localuser:rootAuf derroot/udev Seite:KopierenX Benutzer verwenden~/.Xauthority Datei an/root

Dies fühlt sich an wie ein Schritt in die Vergangenheit. Dies funktioniert nur per Skript, wenn ich mich jedes Mal als derselbe Benutzer anmelde, sodass ich das kopieren kann.Xauthority Datei von der Startseite dieses Benutzers, wenn das Skript ausgeführt wird.

Welchen 'Trick' benutzte das alte Ubuntu, um dies automatisch 'magisch' machen zu lassen?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage