staging.inyokaproject.org

udev Regel führt Programm nicht aus

Status: Ungelöst | Ubuntu-Version: Lubuntu 17.10 (Artful Aardvark)
Antworten |

DrehstuhI

Anmeldungsdatum:
30. Oktober 2016

Beiträge: Zähle...

Guten Morgen,

ich versuche momentan einen kleinen Miniclient-PC mit Lubuntu 17.10 so einzurichten dass er beim einstecken eines USB-Sticks eine Bildershow mit Bildern die auf dem USB-Stick liegen abspielt. Das ganze wollte ich nun mit Udev regeln, dort habe ich eine Regel angelegt die auf ein weiteres Bash-Script verweißt und dort das Programm feh abspielt.

Das ganze klappt schon mal so weit dass die Regel greift und wohl auch das Script ausführt, nur das Programm Feh nicht. Ich habe zum Test mal eine Testausgabe in das Script getan welches ein Text in eine andere Datei schreibt, was er auch tut. Nur das Programm wird nicht ausgeführt.

Meine Udev-Regel sieht so aus: (Dateiname 10-usbstick.rules unter /etc/udev/rules.d/ )

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", SYMLINK+="usbflash" RUN+="/usr/bin/diashow.sh"

Und das aktuelle Shell-Script: /usr/bin/diashow.sh

#!/bin/sh
/usr/bin/feh -q -p -Z -F -R 60 -Y -D 15.0 /media/nico/SYSRCD-5_2_
now=$(date +"%T")
echo "$now :Testausgabe" >> /usr/bin/usr/bin/testausgabe.txt"

Ich habe die Zeile wo feh aufgerufen wird auch mal durch andere Programme ersetzt wie libreoffice, diese werden aber ebenfalls nicht ausgeführt. Führe ich das Script manuell aus wird aber alles richtig ausgegeben und feh öffnet sich auch richtig. Nun habe ich gerade auch mal versucht ein Programm direkt in der udev Regel auszuführen, also etwa so:

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", SYMLINK+="usbflash" RUN+="/usr/bin/libreoffice"

Es öffnet sich aber ebenfalls nichts und es scheint auch kein soffice Prozess zu laufen.

Vielen Dank schon einmal im Voraus für die Hilfe.

klal

Anmeldungsdatum:
13. Januar 2007

Beiträge: 415

DrehstuhI

(Themenstarter)

Anmeldungsdatum:
30. Oktober 2016

Beiträge: Zähle...

Danke für den Link, hat aber dennoch nicht so ganz geholfen.

Habe das Script noch einmal umgeschrieben und sieht nun so aus:

#!/bin/sh

export DISPLAY=:0.0
export PATH=/home/pi/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

/usr/bin/feh /media/pi/SYSRCD-5_2_

now=$(date +"%T")
echo "$now :Testausgabe" >> /usr/bin/usr/bin/testausgabe.txt"

Funktioniert weiterhin nicht, wenn man es manuell ausführt dann geht es weiterhin aber über das udev-Event kommt keine grafische Anwendung zum Vorschein. Habe es auch noch einmal mit einem anderen Programm ausprobiert, leider auch nicht erfolgreich..

DrehstuhI

(Themenstarter)

Anmeldungsdatum:
30. Oktober 2016

Beiträge: 4

So, habe es nun weitesgehend zum laufen gebracht:

udev-Regel:

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", SYMLINK+="usb" RUN+="/usr/bin/diashow.sh"

Script:

#!/bin/sh
export HOME=/home/nico
PATH=/bin:/usr/bin:/usr/local/bin

mount /dev/usb /media/nico/stick
DISPLAY=:0 XAUTHORITY=/home/nico/.Xauthority /usr/bin/feh  -D 3.0 /media/nico/stick/*

Jetzt gibt es aber noch ein anderes Problem: Udev stoppt alle paar Minuten den Prozess und stoppt somit auch Feh, kann man dies unterbinden ?

Hier mal die Logs aus /var/log/syslog:

Jun 29 08:18:28 lubuntu systemd-udevd[135]: seq 1486 '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/host7/target7:0:0/7:0:0:0/block/sdh/sdh1' is taking a long time
Jun 29 08:20:28 lubuntu systemd-udevd[135]: seq 1486 '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/host7/target7:0:0/7:0:0:0/block/sdh/sdh1' killed
Jun 29 08:20:28 lubuntu systemd-udevd[135]: worker [1590] terminated by signal 9 (Killed)
Jun 29 08:20:28 lubuntu systemd-udevd[135]: worker [1590] failed while handling '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/host7/target7:0:0/7:0:0:0/block/sdh/sdh1'
Antworten |