我正在使用
linux screen命令逐个运行不同的目录文件.我有33个vm文件夹,每个文件夹包含要执行的图像.
Root directory = /home/root/
VM folder avaialble = /home/root/vm1,vm2,vm3...vm32
我必须同时运行所有vm,因此使用screen命令.每个屏幕命令将执行1个vm.应该遍历所有33个vm文件夹并同时执行所有33个vm图像.
ctrl + A c = new screen
Follwing是我的代码
for (( i=0; i<=33; i++))
do
screen
ls
vm1 vm2 vm3 vm4 ....vm33
cd vm1
ls
qemu-system-x86_64 -kernel image -hda core-image-full-cmdline-qemux86-64.ext3 -smp 4 -m 512 -nographic --append \
"root=/dev/hda console=ttyS0 rw mem=512M oprofile.timer=1"
cd ..
screen
qemu-system-x86_64 -kernel image -hda core-image-full-cmdline-qemux86-64.ext3 -smp 4 -m 512 -nographic --append \
"root=/dev/hda console=ttyS0 rw mem=512M oprofile.timer=1"
cd ..
.
.
.
done
qemu一启动就退出,并屏幕显示如何解决此问题
提前致谢.
最佳答案 在没有参数的情况下启动屏幕时,结果是打开交互式屏幕会话.
实现您想要的一种方法是(假设当前工作目录是包含所有vms文件夹的目录):
for (( i=1; i<=33; i++ ))
do
cd vm${i}
screen -dmS vm${i} qemu-system-x86_64 -kernel image -hda core-image-full-cmdline-qemux86-64.ext3 -smp 4 -m 512 -nographic --append "root=/dev/hda console=ttyS0 rw mem=512M oprofile.timer=1"
cd ..
done
以下是解释:
对于所有33个虚拟机,输入vm文件夹,然后启动一个名为“vmX”的分离屏幕,以保持qemu运行.
之后,您可以通过以下方式进入每个屏幕:
screen -r vmX
其中X是要控制的虚拟机的编号(例如,使用CTRL-C qemu终止或查看其stdout / stderr输出).
例:
screen -r vm1