[gelöst]udev und shell scripte

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
vobie
Beiträge: 195
Registriert: 29.08.2003 21:14:50

[gelöst]udev und shell scripte

Beitrag von vobie » 31.07.2008 21:30:29

hi,
ich bin gerade dabei div.udev rules für einen Server aufzustellen.
Der Server hat nur einen Kontrollmonitor, keine Tastatur, keine Maus usw. minimales X und für die Meldungen Xdialog.
Daten (sollen) können nur über eine externe USB-Platte die mittels udev Regel erkannt und eingebunden wird aktualisiert werden.
Die Steuer-Scripts befinden sich nicht auf dem Server sondern auf der USB-Platte und werden durch die entsprechende udev Regel angestoßen. (Durch das auslagern der Scripte können diese auch bearbeitet bzw. erweitert werden ohne den Server zu benutzen)
So, nun zum Problem
Die udev Regel sehen in etwa so aus:

Code: Alles auswählen

KERNEL=="sd[a-z]", NAME="%k", ATTRS{serial}=="XXXXXXX", SYMLINK+="usb%m", OPTIONS="last_rule"
ACTION=="add", KERNEL=="sd[a-z][0-9]", ATTRS{serial}=="XXXXXXXX", SYMLINK+="usb%n", NAME="%k"
ACTION=="add", KERNEL=="sd[a-z][0-9]", ATTRS{serial}=="XXXXXXXX", RUN+="/bin/mkdir -p /mnt/usb%n"
ACTION=="add", KERNEL=="sd[a-z][0-9]", ATTRS{serial}=="XXXXXXXX", RUN+="/bin/mount /dev/%k /mnt/usb%n"
ACTION=="add", KERNEL=="sd[a-z][0-9]", ATTRS{serial}=="XXXXXXXX", RUN+="/mnt/usb5/SYSTEM/START/start.sh"

ACTION=="remove", KERNEL=="sd[a-z][0-9]", ATTRS{serial}=="XXXXXXXX", RUN+="/bin/umount -l /mnt/usb%n"
ACTION=="remove", KERNEL=="sd[a-z][0-9]", ATTRS{serial}=="XXXXXXXX", RUN+="/bin/rmdir /mnt/usb%n", OPTIONS="last_rule"
Das "Problem" Script start.sh

Code: Alles auswählen

#!/bin/sh
# test script
# ------------------------------------------------------------
DISPLAY=:0.0
export XAUTHORITY=/home/user/.Xauthority
export DISPLAY
/usr/bin/Xdialog --no-buttons --infobox "Das USB Gerät wurde erkannt" 0 0 5000
/usr/bin/Xdialog --no-buttons --infobox "Beginne mit der Datenübertragung....\n !! ACHTUNG DAS USB GERÄT NICHT AUSSCHALEN ODER ABSTECKEN !!" 0 0 0
1. Problem : rufe ich das script als root oder als user auf ist die Anzeige der Umlaute richtig
wird das script durch anstecken der usb-platte ausgeführt werden die Umlaute nicht richtig angezeigt.
(locale de_DE.UTF-8)

2. Problem: script startet von Konsole = Anzeige bleibt auf Desktop stehen ( parameter --infobox " " 0 0 0 ) ist richtig so.
script startet durch udev regel = Anzeige nur kurz auf dem Desktop zu sehen - nicht richtig :roll:

Wie und wo kann ich den die Shell Umgebung für die udev Regel festlegen, bzw. ändern ???

ich bin für jeden Tipp dankbar

gruß
vobie
Zuletzt geändert von vobie am 02.08.2008 23:27:39, insgesamt 1-mal geändert.
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: udev und shell scripte

Beitrag von rendegast » 31.07.2008 22:40:00

Code: Alles auswählen

Xdialog --no-buttons --infobox "Beginne mit der Datenübertragung....\n !! ACHTUNG DAS USB GERÄT NICHT AUSSCHALEN ODER ABSTECKEN !!" 0 0 0
Wenn ich das ausführe, bekomme ich einen ">"-Prompt.
Versuche es ohne die "!".

und mit einem "T" mehr ;)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

vobie
Beiträge: 195
Registriert: 29.08.2003 21:14:50

Re: udev und shell scripte

Beitrag von vobie » 01.08.2008 00:07:56

rendegast hat geschrieben:

Code: Alles auswählen

Xdialog --no-buttons --infobox "Beginne mit der Datenübertragung....\n !! ACHTUNG DAS USB GERÄT NICHT AUSSCHALEN ODER ABSTECKEN !!" 0 0 0
Wenn ich das ausführe, bekomme ich einen ">"-Prompt.
Versuche es ohne die "!".

und mit einem "T" mehr ;)
hi,
also am "T" lag es nicht :oops:

als Einzeiler wie bei dir bekomme ich auch nur ein ">" :roll: aber starte ich das script aus der konsole als root oder user ist alles ok (auch mit "!!"..) Ä und ü werden auch als Ä oder ü angezeigt, startet das script aus udev kein Ä und ü nur wirre zeichen :roll:
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: udev und shell scripte

Beitrag von rendegast » 01.08.2008 03:18:49

zu Problem 1.
Das Script wird unter root ausgeführt, hat dieser auch de_DE.UTF-8, oder en_US, oder POSIX ?
Einfach ein 'locale > /tmp/udev_locale' im Script einfügen und nachsehen.
Das sollte helfen:

Code: Alles auswählen

export LANG=de_DE.UTF-8

zu Problem 2.
Es liegt an dem Timeout-Wert 0.
Er wird im Skript unter udev-Ausführung nicht richtig interpretiert. Gib einen reellen, sehr großen bzw. ausreichenden Wert an, dann sollte es hinkommen.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

vobie
Beiträge: 195
Registriert: 29.08.2003 21:14:50

Re: udev und shell scripte

Beitrag von vobie » 02.08.2008 23:26:22

rendegast hat geschrieben:zu Problem 1.
Das Script wird unter root ausgeführt, hat dieser auch de_DE.UTF-8, oder en_US, oder POSIX ?
Einfach ein 'locale > /tmp/udev_locale' im Script einfügen und nachsehen.
Das sollte helfen:

Code: Alles auswählen

export LANG=de_DE.UTF-8

zu Problem 2.
Es liegt an dem Timeout-Wert 0.
Er wird im Skript unter udev-Ausführung nicht richtig interpretiert. Gib einen reellen, sehr großen bzw. ausreichenden Wert an, dann sollte es hinkommen.
perfekt :P
vielen Dank
mfg
vobie
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.

Antworten