我正在处理一个bash脚本(我刚刚开始学习bash),它涉及在远程服务器上创建虚拟客户端。我通过SSH从服务器A到B执行此操作并执行2个不同的命令:
# create the images
$(ssh -n john@serverB.net "fallocate -l ${imgsize} /home/john/images/${imgname}")
和
# create the virtual machine
$(ssh -n john@serverB.net virt-install --bunch of options)
这些命令集可能必须在循环中执行两次(如果需要创建2个虚拟guest虚拟机)。当第二次运行第二个命令时,我有时会收到此错误:
Domain installation still in progress.
这意味着我必须等到上一个虚拟客户端完成。我怎样才能在一个循环中完成这些操作?我可以异步运行它们吗?我可以使用线程吗?或者还有另一种方式吗?
我听说过等待'命令,但是可以安全使用吗?
答案 0 :(得分:0)
查看virt-install的手册页。您可以使用--wait = 0或--noautoconsole。
- wait = WAIT VM完成安装的等待时间(以分钟为单位)。没有这个选项,virt-install将等待 控制台关闭(不一定表示客人已关机), 或者在--noautoconsole的情况下,只需启动安装和 出口。任何负值都会使virt-install无限期地等待,a 值0将触发与noautoconsole相同的结果。如果时间 超出限制,virt-install只是退出,离开虚拟 机器处于当前状态。