Verwenden der QM-Ausgabe (QEMU) in einem Skript

Verwenden der QM-Ausgabe (QEMU) in einem Skript

Ich versuche mithilfe des QEMU-Agenten innerhalb eines Skripts zu ermitteln, ob eine QEMU-VM den Bootvorgang abgeschlossen hat.

Das Problem besteht darin, dass ich die Ausgabe weder einer Variablen zuweisen noch in eine Datei umleiten kann:

[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]# 

Ich bin davon ausgegangen, dass qm einfach wie üblich auf stdout druckt, aber das scheint nicht der Fall zu sein.

Weiß jemand, was hier los ist und wie man das Problem umgeht, oder kann jemand eine andere Lösung anbieten, um zu überprüfen, ob eine VM vollständig hochgefahren ist?

Antwort1

Ersetzen

ping

mit

ping 2>&1

um qms stderr auf stdout umzuleiten.

verwandte Informationen