crontab 中的 virt-install 脚本如何控制 tty
virt-install script in crontab how to control tty
我有一个使用 virt-install 创建虚拟机的脚本。此脚本使用 kickstart 文件进行无人值守安装。它在通过 shell 触发时工作得很好,但在通过 crontab 触发时抛出以下错误:
错误:没有控制 TTY
无法 运行 交互式控制台
VM 创建过程在后端继续,但在我的脚本中,它不会等待 virt-install 完成并继续执行下一个命令。我希望我的脚本等待 virt-install 命令完成它的工作,然后移动到下一个命令。有什么方法可以控制 TTY 或让我的脚本等待 virt-install 完成?
编辑
这是我的脚本执行的 virt-install 命令(如果它能帮助您解决问题):
virt-install --connect=qemu:///system \
--network=bridge:$BRIDGE \
$nic2 \
--initrd-inject=$tmp_ks_file \
--controller type=scsi,model=virtio-scsi \
--extra-args="ks=file:/$(basename $tmp_ks_file) console=tty0 console=ttyS0,115200" \
--name=$img_name \
--disk $libvirt_dir/$img_name.img,size=$disk \
--ram $mem \
--vcpus=2 \
--check-cpu \
--accelerate \
--hvm \
--location=$tree \
--nographics
提前致谢,
卡西夫
我终于通过两个步骤解决了这个问题:
首先从virt-install命令中移除'console'相关配置。请参阅上面命令中的额外参数。
放置一些等待 virt-install 完成的逻辑。我确实在 kickstart 文件的 post install 部分添加了 shutdown ,以便 VM 在安装完所有软件包后关闭。然后在我的脚本中,我实际上 'waited' 让 VM 在移动到下一个命令之前进入关闭状态。
这样我就可以在 crontab 中 运行 我的脚本。它也适用于詹金斯。
希望这对面临同样问题的人有所帮助。
我有一个使用 virt-install 创建虚拟机的脚本。此脚本使用 kickstart 文件进行无人值守安装。它在通过 shell 触发时工作得很好,但在通过 crontab 触发时抛出以下错误:
错误:没有控制 TTY
无法 运行 交互式控制台VM 创建过程在后端继续,但在我的脚本中,它不会等待 virt-install 完成并继续执行下一个命令。我希望我的脚本等待 virt-install 命令完成它的工作,然后移动到下一个命令。有什么方法可以控制 TTY 或让我的脚本等待 virt-install 完成?
编辑
这是我的脚本执行的 virt-install 命令(如果它能帮助您解决问题):
virt-install --connect=qemu:///system \
--network=bridge:$BRIDGE \
$nic2 \
--initrd-inject=$tmp_ks_file \
--controller type=scsi,model=virtio-scsi \
--extra-args="ks=file:/$(basename $tmp_ks_file) console=tty0 console=ttyS0,115200" \
--name=$img_name \
--disk $libvirt_dir/$img_name.img,size=$disk \
--ram $mem \
--vcpus=2 \
--check-cpu \
--accelerate \
--hvm \
--location=$tree \
--nographics
提前致谢,
卡西夫
我终于通过两个步骤解决了这个问题:
首先从virt-install命令中移除'console'相关配置。请参阅上面命令中的额外参数。
放置一些等待 virt-install 完成的逻辑。我确实在 kickstart 文件的 post install 部分添加了 shutdown ,以便 VM 在安装完所有软件包后关闭。然后在我的脚本中,我实际上 'waited' 让 VM 在移动到下一个命令之前进入关闭状态。
这样我就可以在 crontab 中 运行 我的脚本。它也适用于詹金斯。
希望这对面临同样问题的人有所帮助。