यदि कोई वर्चुअल मशीन कमांड लाइन से ऊपर है तो मैं कैसे बता सकता हूं?


25

यदि कोई विशिष्ट वर्चुअल मशीन कमांड लाइन से ऊपर और चल रही है तो मैं कमांड लाइन से कैसे बता सकता हूं?


4
vboxmanage list runningvms
SLM

जवाबों:


17
vboxmanage list vms

डॉस नहीं (अब?) बताता है कि वीएम चल रहा है या नहीं। यह सूची भी नहीं चल रही है।

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

यदि यह चल रहा है तो 1 लौटाएगा, या नहीं तो 0।


2
इसके अलावा,if ! VBoxManage showvminfo VMNAME --machinereadable | egrep '^VMState="poweroff"$' > /dev/null; then ...
x- यूरी

विंडोज उपयोग पर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:"

यह वीएम का नाम एक पंक्ति में दिखाएगा और निम्न पंक्ति में इसकी स्थिति जैसे

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 -v -e 'Host path:'
डौग थॉम्पसन

यह PAUSED मशीनों को भी दिखाता है, "लिस्ट रनवेम्स" को लगता है कि रुकी हुई मशीनें चल रही हैं, जो थोड़ा भ्रमित कर सकती हैं ...
सैमुअल lslund

5

यह कमांड रनिंग वीएमएस (वर्चुअलबॉक्स 5.1 पर परीक्षण) की सूची को आउटपुट करता है

VBoxManage list runningvms

यह जानने के लिए कि कोई vm चल रहा है, इस कमांड को काम करना चाहिए (यदि चल रहा है तो 1 लौटाएं, अन्यथा 0):

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

एक रुकी हुई मशीन "लिस्ट रनवेम्स" के साथ चलती हुई दिखाई देती है, यह समस्या निवारण के दौरान भ्रमित करने वाली हो सकती है!
शमूएल undslund

1

मेरा मानना ​​है कि आप VBoxManage (VirtualBox के लिए कमांड-लाइन इंटरफ़ेस) का उपयोग करके यह जानकारी प्राप्त कर सकते हैं ।

आप किसी विशेष वर्चुअल मशीन के बारे में जानकारी दिखाने के लिए showvminfo कमांड का उपयोग कर सकते हैं ।

यह वही सूचना है जो VBoxManage सूची vms सभी वर्चुअल मशीनों के लिए दिखाएगी।


1

कुछ और के बिना अकेले केVBoxManage list runningvms साथ संयोजन न केवल एक कंसोल आउटपुट देगा, बल्कि शेल स्क्रिप्टिंग जरूरतों के लिए आवश्यक रिटर्न कोड भी प्रदान करेगा। आदेश मामले में जहां एक वीएम नाम प्रदान की जाती है में वी एम के लिए सटीक दोहरे उद्धरण की आवश्यकता होगी: उदाहरण:grep grep

$ 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

0

रूट @ तुम्हारा # vboxmanage सूची vms

इसके अलावा, इस दस्तावेज़ को देखें


यह उत्तर गलत है। Virtualbox.org/manual/ch08.html के अनुसार , आप पंजीकृत vms प्राप्त कर सकते हैं , लेकिन OP को उन vms की आवश्यकता है जो ऊपर और चल रहे हैं।
मारियो एस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.