diff options
Diffstat (limited to 'examples/mdev.conf.change_blockdev.sh')
-rwxr-xr-x | examples/mdev.conf.change_blockdev.sh | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/examples/mdev.conf.change_blockdev.sh b/examples/mdev.conf.change_blockdev.sh new file mode 100755 index 000000000..512e43fcc --- /dev/null +++ b/examples/mdev.conf.change_blockdev.sh | |||
@@ -0,0 +1,29 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | # Seconds to try to reread partition table | ||
4 | cnt=60 | ||
5 | |||
6 | exec </dev/null | ||
7 | exec >"/tmp/${0##*/}.$$.out" | ||
8 | exec 2>&1 | ||
9 | |||
10 | ( | ||
11 | echo "Running: $0" | ||
12 | echo "Env:" | ||
13 | env | sort | ||
14 | |||
15 | while sleep 1; test $cnt != 0; do | ||
16 | echo "Trying to reread partition table on $DEVNAME ($cnt)" | ||
17 | : $((cnt--)) | ||
18 | # If device node doesn't exist, it means the device was removed. | ||
19 | # Stop trying. | ||
20 | test -e "$DEVNAME" || { echo "$DEVNAME doesn't exist, aborting"; exit 1; } | ||
21 | #echo "$DEVNAME exists" | ||
22 | if blockdev --rereadpt "$DEVNAME"; then | ||
23 | echo "blockdev --rereadpt succeeded" | ||
24 | exit 0 | ||
25 | fi | ||
26 | echo "blockdev --rereadpt failed, exit code: $?" | ||
27 | done | ||
28 | echo "Timed out" | ||
29 | ) & | ||