Was meinst du mit cronjob?
Sorry, war ein Fehler, das geht ja nur beim Start.
Moderator
![]() Anmeldungsdatum: Beiträge: 8808 |
|||||
Anmeldungsdatum: Beiträge: 12067 |
Hallo! Ich werf mal kurz was rein ☺ Du brauchst eine Unit, welche before: shutdown.target ausgeführt wird, um die VM zu beenden. |
||||
Anmeldungsdatum: Beiträge: 603 |
Nee, das funktioniert nicht, weil der Trigger fehlt.... es wird ja gar kein Shutdown angestoßen, sondern, wenn ich das richtig verstanden habe, i.ü.S. von außerhalb "der Strom abgeschaltet". Da kann eine solche Unit nicht funktionieren. Diese Unit reagiert auf einen bereits angestoßenen Shutdown, sie löst aber keinen aus. Man muss die VM selber benachrichtigen, damit sie einen Shutdown initiiert... dann würde auch diese Unit gestartet werden... was aber bei den gegebenen Umständen unnütz ist. |
||||
Anmeldungsdatum: Beiträge: 12067 |
Die Unit muss im Host laufen. Wenn dieser runterfährt, soll er doch die VM beenden - oder habe ich das falsch verstanden? Im Client braucht gar nichts laufen. |
||||
Anmeldungsdatum: Beiträge: 603 |
Ja, richtig... aber das entspricht dann dem von "außen Strom in der VM abschalten". Das funktioniert, nimmt aber keinerlei Rücksicht auf den Zustand der VM oder was die da gerade tut und liest und schreibt und strickt und kocht..... Anscheinend geht das unter bestimmten Vorraussetzungen: https://hosting.de.inter.net/blog/technik/272-virtuelle-server-und-acpi-shutdown |
||||
Anmeldungsdatum: Beiträge: 12067 |
Dann wäre ein Habe das auch noch nie ausprobiert, deswegen blanke Theorie. Aber man kann so von extern ein Script in der VM starten. Der shutdown des hosts sollte nur ein ausreichendes Timeout für die Units haben, damit das Script auch durchläuft. |
||||
Anmeldungsdatum: Beiträge: 603 |
Na ja, nicht direkt starten... aber die VM informieren, dass sie sich selber runterfahren soll... und das geht doch total easy. Probiers aus in 2 Terminals auf einer Linux-Maschine: Quasi als Server:
Quasi als Client:
Statt localhost geht das auch via IP an jeden Client im Lan. Und das funktioniert auch auf einem VM-Windows-client. Dafür bastelt man sich schnell ein kleines Mini-Powershell-Script, welches bei systemstart gestartet wird. Dafür gibts mehrere Beispiele im Web. Der ganze Weg bei 2 Linux-Systemen wäre dann (bei Windows als 1 Teilnehmer entsprechend anpassen):
|
||||
Projektleitung
Anmeldungsdatum: Beiträge: 13216 |
Man kann eine VM auch einfach schlafen legen anstatt einen Shutdown in der VM anzustoßen. Dann ist man sicher, dass man keinen Zustand verliert. |
||||
(Themenstarter)
Anmeldungsdatum: Beiträge: 15 |
Völlig korrekt, so ist meine Wunschvorstellung. Wenn ich in der Hostkonsole das eingebe
dann fährt der virtuelle Windows-Gast auch sauber runter. Dieser Befehl muss nur im Host bei einem shutdown bzw. reboot einfach ausgeführt werden undzwar soll dann der Ubuntu-Host solange warten, bis der Gast tatsächlich runtergefahren ist und erst bei erfolgreichem Abschluß dieses Befehls seinen shutdown fortführen. Gibt es hierfür keine einfache Lösung? Evtl. ist ja meine Unit einfach fehlerhaft, oder es fehlt ein Parameter. Ist evtl. der Typ forking bzw. PIDFile das Problem?
|
||||
Anmeldungsdatum: Beiträge: 12067 |
Versuch es mal damit. Das before hatte ich ja erwähnt, könnte auch alleine reichen. Ein KillMode=none untersagt theoretisch das "abschiessen" des Prozesses. Wie rklm schon schrieb, könntest du dein acpipowerbutton gegen ein savestate tauschen. Wieso hast du forking drin? Startet die Unit Dienste mehrfach? Theoretisch kann das raus, oder hatte das einen Grund? /edit: Schon spät. Sinn in den mittleren Satz reinkorrigiert^^ |
||||
(Themenstarter)
Anmeldungsdatum: Beiträge: 15 |
Hallo ChickenLipsRfun2eat, danke für Deine Unit, ich habe noch Group=andi hinzugefügt sowie die Zeile mit PIDFile entfernt. Jetzt funktioniert das so wie es soll. Beim hochfahren startet die VM automatisch und beim reboot wird die VM automatisch mit runtergefahren. Laut der Windows-Ereignisprotokolle ist es auch ein sauberer Shutdown. Danke an alle die mitgewirkt haben. |