udev: Warten Sie, bis die Geräteberechtigungen festgelegt sind, bevor Sie das Skript ausführen
426
BadIdeaException
Ich versuche, USB-Geräte mit udev in einen laufenden Docker-Container zu übergeben. Das Skript wird jedoch aufgerufen, bevor die Berechtigungen und der Gruppeneigentum auf dem Gerät richtig festgelegt sind. Dies verursacht alle Arten von Berechtigungsproblemen im Container. Wie kann ich das lösen?
Die häufigste Antwort, die ich auf Google sehe, umfasst sleep
ein Skript, das ein anderes anruft, aber dies erscheint mir hackig. Gibt es einen besseren Weg?
Dies ist die relevante Funktion des aufgerufenen Skripts zum Hinzufügen des Geräts:
function add_device() { # Check that device exists and is a character device if [ ! -e $DEV ] || [ ! -c $DEV ] then exit 1 fi MAJOR=$(echo $((0x$(stat -c "%t" "$DEV")))) # Get major number and convert to decimal with echo MINOR=$(echo $((0x$(stat -c "%T" "$DEV")))) # Get minor number and convert to decimal with echo MODE=$(stat -c "%a" "$DEV") # Get device file permissions GID=$(stat -c "%g" "$DEV") # Get device file group id docker exec $CONTAINER /bin/bash -c "mkdir -p $(dirname $DEV) \ && mknod -m $MODE $DEV c $MAJOR $MINOR \ && chgrp $GID $DEV \ && echo $(date --rfc-3339=seconds): Character device $DEV created as (major:minor) $MAJOR:$MINOR with owner root:$GID and permissions $MODE >> /var/log/dynamic-devices.log" }
0 Antworten auf die Frage
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4