Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
qemu: Herunterfahren per Script/telnet
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum
View previous topic :: View next topic  
Author Message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2078
Location: Konradsreuth (Germany)

PostPosted: Tue Dec 24, 2013 1:50 pm    Post subject: qemu: Herunterfahren per Script/telnet Reply with quote

Hallo :-)

Wenn ich eine virtuelle qemu-Maschine mit
Code:
-qmp tcp:127.0.0.1:4444,server,nowait

starte, dann kann ich sie mit
Code:
telnet 127.0.0.1 4444 <<JSON
{ "execute": "qmp_capabilities" }
{ "execute": "system_powerdown" }

JSON

(also per Script) herunterfahren. Allerdings funktioniert die Kommunikation asynchron, also wird der Befehl sofort beendet, und nicht erst, wenn die Maschine heruntergefahren ist. Abgesehen davon sagt telnet auch „Connection closed by foreign host.“ und $? ist nicht 0.

Jetzt hierzu zwei Fragen:

1. Kann ich den telnet-Aufruf so gestalten, dass das Script „normal“ beendet wird, also $? hinterher 0 ist?

2. Wie finde ich heraus, wann die virtuelle Maschine fertig heruntergefahren ist? Bzw. kann ich das evtl. in den telnet-Aufruf packen, dass der Befehl eben nicht asynchron ausgeführt werden soll, so dass das Script erst dann zurückkommt, wenn die Maschine auch heruntergefahren ist?

Der Hintergrund ist, dass ein Server mit einer unterbrechungsfreien Stromversorgung im Ausfall-Fall erstmal die virtuelle Maschine herunterfahren soll, die er hostet und dann sich selbst – was natürlich sinnvollerweise erst dann angestoßen werden sollte, wenn die VM vollständig heruntergefahren ist.

Vielen Dank für die Antworten schonmal :-)
Back to top
View user's profile Send private message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2078
Location: Konradsreuth (Germany)

PostPosted: Fri Dec 27, 2013 1:05 pm    Post subject: Reply with quote

Es geht mit expect:
Code:
#!/usr/bin/expect

set timeout -1

spawn telnet 127.0.0.1 4444

expect "QMP"
send "{ 'execute': 'qmp_capabilities' }\n"

expect "return"
send "{ 'execute': 'system_powerdown' }\n"

expect "SHUTDOWN"
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum