Man kann sich um diese udev Kontrolle herummogeln.
Das Script kann z.B. als erstes eine neue Instanz von sich selbst starten, die unabhängig von udev ist (mit setsid, nohup oder disown). Damit entfällt die Zeitbegrenzung.
Es kann auch vorkommen, daß udev ein Script mehrfach startet; wenn es nur einmal laufen soll, braucht man hier noch irgendeinen Locking-Mechanismus. Ganz banal kann man einfach ein Verzeichnis unter /tmp erstellen und abbrechen, wenn es schon existiert.
| # script mit setsid neu starten
if [ "${setsid}" != 1 ]
then
setsid=1 setsid "$0" "$@" &
exit
fi
# script nur einmalig ausführen
mkdir /tmp/meinscriptname || exit 1
|
Ansonsten wenn du lieber über systemd gehen willst, kannst du mit RUN+="/usr/bin/systemd-run ..."
auch dynamisch eine Unit erzeugen und starten. Das Wiki hat einen Artikel dazu (in der Baustelle): Baustelle/systemd/systemd-run ansonsten die Manpage studieren bzw. andere Beispiele dafür ergoogeln.
Bei einer "richtigen" Systemd-Unit (unter /etc/systemd/system/... Howto/systemd Service Unit Beispiel) brauchst du udev ggf. gar nicht mehr es sei denn dein Script hängt tatsächlich rein von einem udev spezifischen Event ab.
Der Vorteil von Systemd ist natürlich, daß du das Ding dann über Systemd eigenständig neu starten oder beenden bzw. allgemein überwachen kannst. Bei dem obigen Beispiel mit dem Shellscript bleibt dir da nur noch kill...