Discussion:
udev-Skript bricht ab
Handwerker, Jan (IMK)
2014-06-23 06:40:12 UTC
Permalink
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Liebe Liste,

mit Eurer Hilfe habe ich mir vor einiger Zeit ein automatisches
Backup eingerichtet: Die externe Platte ist per USB angeschlossen
und wird über eine Zeitschaltuhr einmal die Woche eingeschaltet.
Dazu gibt es eine udev-Regel (/etc/udev/rules.d/54-ext_hd.rules):

SUBSYSTEMS=="usb", KERNEL=="sd?1", \
ATTRS{serial}=="2009A10004FD", \
SYMLINK+="backup", \
RUN+="/root/bin/auto_backup"

Das Skript /root/bin/auto_backup startet dann das nächste Skript.
auto_backup sieht so aus:

#!/bin/bash
nohup /root/bin/automatisches_backup &
exit 0

Und dieses Skript sucht dann nach de externen Platte, identifiziert
sie und mittels cryptsetup und mount wird die externe Platte
eingebunden, per rsnapshot das Backup durchgeführt und dann die
Platte wieder geumountet und per cryptsetup entlassen.

Wenn ich das Skript selbst aufrufe, dann klappt das auch. Aber seit
ich jetzt auf 13.1 (von 12.2) umgestiegen bin, bricht das Skript
nach den ersten paar Zeilen ab, wohl mitten in einem "sleep 5s", mit
dem ich darauf warte, dass die gerade frisch eingeschaltete Platte
auch schon wirklich gefunden wurde.

Wie angedeutet: Die identische Konfiguration hat unter 12.2
geklappt. Die Frage: Was habe ich am udev-System nicht verstanden,
was mein Skript nach ein paar Sekunden killt (obwohl es mit nohup
gestartet wurde)?

Ich habe das "sleep 5s" mal in 5 "sleep 1s" geändert und nach jeder
Sekunde ein Zeichen ins Logfile geschrieben. Da hat das Skript
einzelne sleeps überstanden, bevor es dahinschied. Es liegt also
nicht am eigentlichen Skript, sondern udev scheint den von ihm
gestarteten Prozessen nur wenig Zeit zu lassen - stimmt das? Wenn
ja, warum ist das so?

Vielen Dank!
Gruß
Jan
- --
_________________________________________________________________
Jan Handwerker http://www.imk-tro.kit.edu/jan.handwerker.php
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Digitale Unterschrift mit GnuPG
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlOny8wACgkQ4wryzGTbiqgChgCfZieupgbdQQjoEweTfIu2CiRj
t/8An0mcyWc7QD8DMNrR55lb3pNMVJAk
=14ht
-----END PGP SIGNATURE-----
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Christian Brabandt
2014-06-23 09:24:55 UTC
Permalink
Post by Handwerker, Jan (IMK)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Liebe Liste,
mit Eurer Hilfe habe ich mir vor einiger Zeit ein automatisches
Backup eingerichtet: Die externe Platte ist per USB angeschlossen
und wird über eine Zeitschaltuhr einmal die Woche eingeschaltet.
SUBSYSTEMS=="usb", KERNEL=="sd?1", \
ATTRS{serial}=="2009A10004FD", \
SYMLINK+="backup", \
RUN+="/root/bin/auto_backup"
Das Skript /root/bin/auto_backup startet dann das nächste Skript.
#!/bin/bash
nohup /root/bin/automatisches_backup &
exit 0
Und dieses Skript sucht dann nach de externen Platte, identifiziert
sie und mittels cryptsetup und mount wird die externe Platte
eingebunden, per rsnapshot das Backup durchgeführt und dann die
Platte wieder geumountet und per cryptsetup entlassen.
Wenn ich das Skript selbst aufrufe, dann klappt das auch. Aber seit
ich jetzt auf 13.1 (von 12.2) umgestiegen bin, bricht das Skript
nach den ersten paar Zeilen ab, wohl mitten in einem "sleep 5s", mit
dem ich darauf warte, dass die gerade frisch eingeschaltete Platte
auch schon wirklich gefunden wurde.
Wie angedeutet: Die identische Konfiguration hat unter 12.2
geklappt. Die Frage: Was habe ich am udev-System nicht verstanden,
was mein Skript nach ein paar Sekunden killt (obwohl es mit nohup
gestartet wurde)?
Ich habe das "sleep 5s" mal in 5 "sleep 1s" geändert und nach jeder
Sekunde ein Zeichen ins Logfile geschrieben. Da hat das Skript
einzelne sleeps überstanden, bevor es dahinschied. Es liegt also
nicht am eigentlichen Skript, sondern udev scheint den von ihm
gestarteten Prozessen nur wenig Zeit zu lassen - stimmt das? Wenn
ja, warum ist das so?
Lang laufende Skripte sollen nicht mehr mittels RUN Mechanismus
gestartet werden.

Statt dessen, nimmt man heutzutage wohl systemd device units.

Siehe auch hier:
http://unix.stackexchange.com/questions/56243/how-to-run-long-time-process-on-udev-event
http://blog.fraggod.net/2012/06/16/proper-ish-way-to-start-long-running-systemd-service-on-udev-event-device-hotplug.html

Alternativ könnte man wohl auch at dafür nutzen:
http://unix.stackexchange.com/a/28711

Grüße,
Christian
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Handwerker, Jan (IMK)
2014-06-23 15:44:05 UTC
Permalink
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hallo Christian,
Post by Christian Brabandt
Lang laufende Skripte sollen nicht mehr mittels RUN Mechanismus
gestartet werden.
das habe ich jetzt in den von Dir angegebenen Links gefunden. Danke!
Ein Skript, dass unter der Kontrolle von udev läuft, blockiert den
Dämon. D.h. mein stundenlang laufendes Skript hindert über Stunden
jeden udev-Vorgang. Stört in meinem Fall nicht, ist aber im Prinzip
unklug.
Post by Christian Brabandt
Statt dessen, nimmt man heutzutage wohl systemd device units.
http://unix.stackexchange.com/questions/56243/how-to-run-long-time-process-on-udev-event
http://blog.fraggod.net/2012/06/16/proper-ish-way-to-start-long-running-systemd-service-on-udev-event-device-hotplug.html
http://unix.stackexchange.com/a/28711
... womit Du mich auf etwas hinweist, was ich selbst nicht gefunden
habe. Offensichtlich ist mein Problem doch wohl bekannt. Ich habe
zwar noch nicht jedes Wort auf den Seiten verstanden, aber das
bekomme ich noch hin.

Vielen Dank!

Herzliche Grüße
Jan
- --
_________________________________________________________________
Jan Handwerker http://www.imk-tro.kit.edu/jan.handwerker.php
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Digitale Unterschrift mit GnuPG
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlOoS0UACgkQ4wryzGTbiqhPnQCfQn5lMJWygns/qvCYWNmJGtLp
4AEAmwb4StDpiBK8O44L7r8ViuXPCdJ7
=I8Ub
-----END PGP SIGNATURE-----
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Lesen Sie weiter auf narkive:
Loading...