Usando la salida qm (qemu) en un script

Usando la salida qm (qemu) en un script

Estoy tratando de determinar si una máquina virtual QEMU ha terminado de iniciarse desde dentro de un script utilizando el agente QEMU.

El problema es que no puedo asignar la salida a una variable o incluso canalizarla a un archivo:

[root@node1 dir]# isrunning=$(qm agent 1234 ping)
VM 1234 is not running
[root@node1 dir]# echo $isrunning

[root@node1 dir]# isrunning=`qm agent 1234 ping`
VM 1234 is not running
[root@node1 dir]# echo $isrunning

[root@node1 dir]# qm agent 1234 ping > /tmp/qmclonevm
VM 1234 is not running
[root@node1 dir]# echo /tmp/qmclonevm 
/tmp/qmclonevm
[root@node1 dir]# qm agent 1234 ping | tee /tmp/qmclonevm
VM 1234 is not running
[root@node1 dir]# cat /tmp/qmclonevm 
[root@node1 dir]# 

Supuse que qm simplemente se imprimiría en la salida estándar como de costumbre, pero parece que este no es el caso.

¿Alguien sabe qué está pasando aquí y cómo solucionar ese problema o alguien puede proporcionar una solución diferente para verificar si una máquina virtual está completamente iniciada?

Respuesta1

Reemplazar

ping

con

ping 2>&1

para redirigir stderr de qm a stdout.

información relacionada