我需要在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
,它按预期工作。
这背后的原因是什么? (某种异步呼叫注册延迟/竞争条件?)
答案 0 :(得分:0)
mount和上一个命令都需要升级的权限。当mount尝试运行时,它是否会导致上一个命令中的锁仍然存在?
答案 1 :(得分:0)
挂载错误:挂载点/ mnt / temp不存在
因此,当您将目录/mnt/temp
作为shell脚本运行时,它似乎不存在。只需创建它或在mount命令之前的某个地方添加它:
mkdir /mnt/temp 2>&1 /dev/null