Pipe

virt-install:從主機腳本發送來賓命令

  • December 26, 2019

我可以virt-install使用以下選項將輸入/輸出重定向到控制台--console

virt-install \
 --name centos \
 --ram 1024 \
 --os-type linux \
 --os-variant centos7.0 \
 --graphics none \
 --location ~/CentOS-7-x86_64-Minimal-1908.iso \
 --extra-args 'console=ttyS0,115200n8 serial' \
 --console pty,target.type=serial

我想從腳本發送控制台輸入,因此我嘗試了命名管道。在普通的 kvm 中,可以使用以下選項:

-serial pipe:/tmp/centos

/tmp/centos命名管道在哪裡:

mkfifo /tmp/centos.in /tmp/centos.out

virt-install我嘗試用以下--console幾種組合替換:

--console pty,target.type=serial,source.path=/tmp/centos

但沒有任何可用的:

cat /tmp/centos.out

並且沒有任何內容髮送到VM:

echo cmd > /tmp/centos.in

如何將命令從主機腳本傳送到來賓?

Libvirt 具有用於“管道”選項的原生 XML:https ://libvirt.org/formatdomain.html#elementsCharPipe

使用 virt-install 它應該是:--console pipe,source.path=/path/to/my/pipe

  • 編輯以刪除不正確的語法

引用自:https://unix.stackexchange.com/questions/558486