コマンドラインから仮想マシンが起動しているかどうかを確認するにはどうすればよいですか?


25

特定の仮想マシンがコマンドラインから起動して実行されているかどうかをコマンドラインから確認するにはどうすればよいですか?


4
vboxmanage list runningvms
slm

回答:


17
vboxmanage list vms

vmが実行中かどうかは(もう?)わかりません。実行中のものもリストします。

vboxmanage showvminfo "your_vm_name" | grep -c "running (since"

実行されている場合は1を返し、実行されていない場合は0を返します。


2
また、if ! VBoxManage showvminfo VMNAME --machinereadable | egrep '^VMState="poweroff"$' > /dev/null; then ...
x-yuri

Windowsでの使用vboxmanage showvminfo "vmname or GUID" | findstr /c:"running (since"
phuclv

3
vboxmanage list runningvms
slm

9

すべてのVMのリストで実行中かどうかを確認するには、次のコマンドを使用します。

vboxmanage list vms --long | grep -e "Name:" -e "State:"

これにより、1行にVM名が表示され、次のような次の行にそのステータスが表示されます。

Name:            windows10pro
State:           running (since 2017-06-09T09:16:46.593000000)
Name:            ubuntu16LTS
State:           powered off (since 2017-02-09T19:11:33.000000000)
Name:            zammad
State:           running (since 2017-06-09T09:08:13.871000000)

この出力には、設定した可能性のある共有フォルダーに関する情報が含まれます。:それを削除するには、別のgrepにパイプ... | grep -v -e 'Host path:'
ダグ・トンプソン

これはPAUSEDマシンも示しています。「list runningvms」は、一時停止したマシンが実行されていると考えていますが、少し混乱する可能性があります...
SamuelÅslundJun

5

このコマンドは、実行中のvmsのリストを出力します(Virtualbox 5.1でテスト済み)

VBoxManage list runningvms

vmが実行されているかどうかを確認するには、このコマンドでジョブを実行する必要があります(実行中の場合は1、そうでない場合は0を返します)。

VBoxManage list runningvms | sed -r 's/^"(.*)".*$/\1/' | grep 'VM Name' | wc -l

一時停止したマシンは、「list runningvms」で実行中として表示されます。これは、トラブルシューティングの際にかなり混乱する可能性があります。
サミュエルオスランド

1

VBoxManage(VirtualBoxのコマンドラインインターフェイス)を使用してこの情報を取得できると思います。

特定の仮想マシンに関する情報を表示するには、showvminfoコマンドを使用できます。

これは、vmsがすべての仮想マシンに対して表示するVBoxManageリストと同じ情報です。


1

何もせずVBoxManage list runningvmsgrep 単独で組み合わせると、コンソール出力が得られるだけでなく、シェルスクリプトのニーズに必要な戻りコードも提供されます。grep例:コマンドは、VM名が設けられている場合にはVMの正確な二重引用符が必要になります。

$ VBoxManage list runningvms |grep '"demo_vm"'
$ echo $?
1

ランニング用

$ VBoxManage list runningvms |grep '"demo_vm_on"'
"demo_vm_on" {bbff5c0e-f8d4-4751-8d34-c53c4b191613}
$ echo $?
0

sed二重引用符を削除するために使用された他の回答、または二重引用符なしで grepが実行された場合、誤検知が返されます。デモンストレーション:

$ VBoxManage list runningvms |grep demo_vm
"demo_vm_on" {bbff5c0e-f8d4-4751-8d34-c53c4b191613}
$ echo $?
0

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.