Skrypty uruchamiane z udev nie mają już dostępu do DISPLAY?
Mam skrypt, z którego działaudev
po podłączeniu dysku zewnętrznego. Zawsze działało. Ale po aktualizacji zLinux 3.8 / Xorg 1.12 / Mint 14 (Ubuntu 12.10 kompatybilny) doLinux 3.11 / Xorg 1.14 / Mint 16 (Ubuntu 13.10 kompatybilny), to już nie działa.
Skrypt nadal działa, ale żadne z poleceń, które wymagają wyświetlania, nie działają. Pomyślałem o tym, rezygnując zudev
demon i uruchomić ręcznieudevd --debug
dla pełnego wydruku (więcej poniżej).
Ten skrypt działał wMennica 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."
Ale już nieMennica 16 / 13.10. Jeśli zastanawiasz się nad możliwymi rozwiązaniami, stopniowo dodawałem rzeczy, a teraz wygląda to tak:
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
Ale to nadal nie działa.udevd --debug
nadal pokazuje to:
'(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'
Zauważ, że każda logika bash działa. Odbijanie varsów testowych do>>/tmp/test.log
Prace. To tylko dostęp do wyświetlacza, który już nie działa.
To doprowadza mnie do szału. Jaki jest właściwy sposób osiągnięcia tego teraz?
Aktualizacja 2013-12-20Tak więc w poprzednim UbuntuX
komendy automatycznie znajdowałyby drogę do prąduX
korzystanie z użytkownika.
Teraz potrzebuję tych dwóch rzeczykażdego razu:
NaX
korzystanie z użytkownika:xhost +si:localuser:root
Naroot/udev
bok:KopiujX
korzystanie z użytkowników~/.Xauthority
plik do/root
To „czuje się” jak cofnięcie się w czasie. Działa to tylko wtedy, gdy loguję się jako ten sam użytkownik za każdym razem, więc mogę skopiować.Xauthority
plik z domu tego użytkownika, gdy skrypt jest wykonywany.
Jakiej „sztuczki” użył stary Ubuntu, aby zrobić to automatycznie?