Portál AbcLinuxu, 8. května 2025 02:33
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.