Portál AbcLinuxu, 27. listopadu 2025 10:54
out="$(echo '{"execute":"guest-info"}' | timeout -s SIGKILL 1 socat STDIO,ignoreeof UNIX-CONNECT:qga.sock 2>/dev/null | jq -r ".return" 2>/dev/null)"
Problém je, že keď nepridám k STDIO parameter ignoreeof, tak socat hneď skončí a na "výstupe" nemám nič. Na druhej strane ale s ignoreeof samozrejme socat čaká na ďalšie dáta a neukončí sa, teda preto tam mám ten timeout. Dočítal som sa niečo o parametry escape, ktorý by asi mal qemu posielať po odoslaní dát na ukončenie, ale jak googlim, tak googlim - proste nič rozumné sa neviem dopátrať.
Moja otázka teda znie - ako donútiť aby socat fungoval v "štýle": otázka, odpoveď, koniec
Za pomoc vám vopred ďakujem.
exec 3 <> /tmp/qga.sock
echo '{"execute":"guest-info"}' > &3
while read LINE < &3
do
echo "$LINE"
done
exec 3 > &-
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.