Warten Sie mit dem Mounten, bis der Prozess nicht mehr beschäftigt ist

Warten Sie mit dem Mounten, bis der Prozess nicht mehr beschäftigt ist

Ich schreibe/lese über NVMe auf eine SSD. Ich möchte die SSD-Partitionen aushängen und sie nach dem Schreiben und vor dem Lesen erneut einhängen, um Caching-Probleme zu vermeiden. Wenn ich versuche, diesen Vorgang auszuführen, erhalte ich anscheinend eine Fehlermeldung, die besagt, dass das Gerät beschäftigt ist und diese Aktion nicht ausführt.

Hier sind die Befehle

/root/bin/mountfs -u
sleep 5
/root/bin/mountfs -m
sleep 10

Hier ist mountfs

#!/bin/bash

# Mount/unmount ext4 file systems

exit_status=1
if [ "-m" = "$1" ]
then mount -t ext4 /fsmnt/fs1
     mount -t ext4 /fsmnt/fs2
     mount -t ext4 /fsmnt/fs3
     mount -t ext4 /fsmnt/fs4
     exit_status=0
elif [ "-u" = "$1" ]
then umount /fsmnt/fs1
     umount /fsmnt/fs2
     umount /fsmnt/fs3
     umount /fsmnt/fs4
     exit_status=0
else echo "mountfs -m | -u"
fi
exit $exit_status

Gibt es in Bash eine Möglichkeit, programmgesteuert zu warten, bis alle Lese-/Schreibvorgänge abgeschlossen sind, sodass die Geräte nicht ausgelastet sind und ich die Partitionen erfolgreich erneut mounten kann, um die NVMe-Controller-/Betriebssystem-Caches zu löschen?

verwandte Informationen