質問: virtualboxマシンを自動的に起動およびシャットダウンする方法 専用マシンにアプライアンスとしてインストールするためのソフトウェアシステムを実行する必要があります。エネルギーを節約するために、代わりにvirtualbox vmでシステムを実行する予定です。ホストはsysv-initシステムを備えた標準のlinuxボックスであり、ゲストは大幅に変更されたlinuxであり、これをさらに変更する必要はありません。 virtualboxはoseバージョンで使用されます。ホストの起動時にvmを開始する方法をすでに理解しました(edit:これは、以下にnikhilが述べたように、コマンドvboxmanager startvm)、しかしどのようにしてvmを適切にシャットダウンできますか?ホストで実行中のスクリプトは、ゲストが完全にシャットダウンするまで待機する必要があります。たとえば、これを行うサービスファイルがどのように見える必要があるかを誰かが提案できますか?
回答: 私の解決策:このシェルスクリプトでは、「root」が呼び出し元であり、「theuser」が「thevm」の所有者ですコマンドvboxmanage list runningvmsの出力が空の文字列を返したときに、vmsが終了したことを知っています。... start(){ su -c "vboxheadless --startvm thevm" -s /bin/bash theuser & # maybe another vbox command } stop(){ su -c "vboxmanage controlvm thevm acpipowerbutton" -s /bin/bash theuser # maybe another vbox command while [ "`su -c 'vboxmanage list runningvms' -s /bin/bash theuser`" != "" ] do echo waiting for vms to shutdown sleep 3 done } ...