0

我需要在 shell 脚本中运行以下命令集

modprobe nbd
sudo qemu-nbd -c /dev/nbd0 path/to/image/file
sudo mount /dev/nbd0p1 /mnt/temp
python copyFiles.py
sudo umount /mnt/temp
sudo qemu-nbd -d /dev/nbd0
sudo rmmod nbd

当我单独运行这些命令时,它工作正常,但是当我将它们放入 shell 脚本并执行该 shell 脚本时,我总是在mount命令中出现错误。

sleep 1所以我之前投入了一个mount,它按预期工作。

这背后的原因可能是什么?(某种异步呼叫注册延迟/竞争条件?)

4

2 回答 2

0

mount 和前面的命令都需要升级权限。当 mount 尝试运行时,它是否会导致上一个命令中的锁仍然存在?

于 2012-07-19T17:03:33.033 回答
0

挂载错误:挂载点 /mnt/temp 不存在

因此,/mnt/temp当您将其作为 shell 脚本运行时,该目录似乎不存在。只需在 mount 命令之前的某个位置创建它或将其添加到脚本中:

mkdir /mnt/temp 2>&1 /dev/null
于 2012-07-19T17:09:14.947 回答