1 |
Bischen spät meine Antwort, aber da ich gestern ein ähnliches Problem hatte, |
2 |
hier nun eine mögliche Lösung eures Problems. |
3 |
|
4 |
Am Mittwoch, 8. September 2004 15:06 schrieb Bernd Wurst: |
5 |
> Am Mittwoch, 8. September 2004 14:14 schrieb Martin Wegner: |
6 |
> > > BUS="ide", KERNEL="hd*", \ |
7 |
> > > PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", NAME="%k", \ |
8 |
> > > SYMLINK="%c{1} %c{2}" |
9 |
> > > Das sieht mir schwer danach aus als könnte man ein Programm |
10 |
> > > ausführen lassen, wenn ein bestimmtes device erstellt wird. |
11 |
> > > Alles ungetestet, aber wenn das nicht geht, wär's peinlich. ;-) |
12 |
> > |
13 |
> > Hab mir also gedacht eine udev-Rule für /dev/sda zu erstellen, die |
14 |
> > dann touch auf /dev/sda aufruft, ging nicht. |
15 |
> |
16 |
> An genau dieser Stelle würde ich gerne nochmal nachhaken, denn genau so |
17 |
> wäre auch meine Idee gewesen. |
18 |
|
19 |
Geht auf keinen Fall. die Programme, die in der udev-Zeile aufgerufen werden, |
20 |
werden erst ausgeführt, dann wird das Device angelegt. Ob sinnvoll oder |
21 |
nicht, ka, ist aber so. |
22 |
|
23 |
> > Deshalb vermute ich, dass zu dem |
24 |
> > Zeitpunkt, zu dem sowohl die udev-Rule als auch hotplug aufgerufen |
25 |
> > werden, der touch noch nichts bewirkt. Erst als ich das touch manuell |
26 |
> > aufgerufen habe, funktionierte es. |
27 |
> |
28 |
> Ich werde nicht behaupten, dass ein sleep 1 (oder 2 oder 5) in dem |
29 |
> Script sinnvoll oder elegant ist, aber es könnte klappen. |
30 |
|
31 |
Bringt nichts, so. |
32 |
|
33 |
Die Lösung ist hotplug!. Allerdings nicht die über /etc/hotplug gesteuerte |
34 |
Version. Wenn ein neues Device im /dev Verzeichnis angelegt wrid, wird das |
35 |
Skript /etc/dev.d/default/default.dev von hotplug ausgeführt. Dieses Skript |
36 |
hat den gleichen Aubau wie ein hotplug-Skript in /etc/hotplug (jedenfalls |
37 |
siehts so aus). |
38 |
|
39 |
Beispiel: |
40 |
|
41 |
#!/bin/bash |
42 |
if [ "$ACTION" == add ] ; then |
43 |
|
44 |
logger -t dev.d "New Device" |
45 |
|
46 |
#usb-stick |
47 |
if [ "$DEVNAME" == /dev/stick1" ]; then |
48 |
/etc/dev.d/default/stick |
49 |
fi |
50 |
fi |
51 |
|
52 |
if [ "$ACTIOM" == "remove" ]; then |
53 |
if [ "$DEVNAME" == /dev/stick1" ]; then |
54 |
umount /mnt/stick |
55 |
fi |
56 |
fi |
57 |
|
58 |
usw. Im skript stick kann man dann machen was man will. z.B. mounten usw. |
59 |
|
60 |
Der Ehre halber muß ich zugeben, daß das ganze nicht auf meinem Mist gewachsen |
61 |
ist, sonder ich das ganze auf ner Debian Mailingliste gelesen hab. |
62 |
|
63 |
cu Daniel |
64 |
|
65 |
-- |
66 |
Geld verdirbt nicht den Charakter eines Menschen, es entlarvt ihn! - Max |
67 |
Frisch |