Windows होस्ट से वर्चुअलबॉक्स वीएम में एक उबंटू अतिथि पर कमांड चलाएं


3

मैं कुछ कोडिंग पर काम कर रहा हूं, और मेरे पास एक विचार है जो काम करना चाहिए लेकिन मुझे कोई सुराग नहीं है कि इसे कैसे काम करना है। मैं कुछ कोड को चलाने के लिए अपने विंडोज होस्ट मशीन पर वुल्फ्राम मैथमेटिका का उपयोग कर रहा हूं, लेकिन मुझे लिनक्स-आधारित प्रोग्राम के लिए एक फ़ाइल निर्यात करना होगा जिसे मैं एक Ubuntu वर्चुअलबॉक्स वीएम में चलाता हूं। अब, जब फ़ाइल निर्यात की जाती है, तो मुझे इसे खत्म करना होगा और इसे चलाने के लिए इसे क्लिक करना होगा।

हालांकि यह बहुत अधिक काम नहीं है, मैं इसे स्वचालित रखना चाहता हूं ताकि गणितज्ञ मेरे अन्य कार्यक्रम को कॉल कर सकें और मुझे कुछ भी क्लिक करने की आवश्यकता नहीं है। मैंने मदद के लिए ऑनलाइन देखने की पूरी कोशिश की है, लेकिन ईमानदारी से यह मेरे सिर पर है (मैं एक सिविल इंजीनियर हूं, वास्तव में कंप्यूटर प्रेमी नहीं हूं)।

यहाँ मैंने अभी तक क्या किया है:

C:\Program Files\Oracle\VirtualBox\VBoxManage guestcontrol "Ubuntu" execute --username (myname) --password (mypassword) --verbose --wait-exit --wait-stdout --image "/home/(myname)/Desktop/oof2-2.1.11/oof2"

यह मुझे बताता है VERR_ACCESS_DENIEDऔर अतिथि सत्र को बंद कर देता है।

जब मैं उबंटू में अपना कार्यक्रम चलाता हूं, तो मुझे oof2केवल टर्मिनल विंडो में टाइप करना होता है और यह शुरू हो जाता है, लेकिन मैं इसे कमांड लाइन के माध्यम से कैसे कर सकता हूं? मैंने VirtualBox के लिए अतिथि नियंत्रण मैनुअल के माध्यम से पढ़ा है और मैंने ऐसा कुछ भी नहीं देखा है जिसे मैं समझ सकता हूं कि सीधे लागू होता है। किसी भी मदद की सराहना की है।

अंतिम नोट के रूप में, मैं अतिथि नियंत्रण मैनुअल में दिए गए उदाहरणों को चला सकता हूं और वे ठीक काम करते हैं।


यदि आप वर्चुअलबॉक्स से उबंटू मशीन में लॉगिन करते हैं तो क्या आप पूर्ण पथ का उपयोग करके ऐप को निष्पादित कर सकते हैं /home/(myname)/Desktop/oof2-2.1.11/oof2?
हैवीड

खैर, मैं वास्तव में नहीं कर सकता। इसने शुरू में कहा कि "पहुंच से वंचित", इसलिए मैंने सुडो ..., और यह कहा "कमांड नहीं मिला"। मुझे कैसे पता चलेगा कि टर्मिनल किस मार्ग का उपयोग कर रहा है? फिर से, मैं सिर्फ "oof2" टाइप करता हूं और यह पॉप अप हो जाता है।
होग्यो 88३०

कोशिश करेंwhich oof2
हेवीड

रास्ता है '/ usr / स्थानीय / बिन / oof2'। अब मैं उपरोक्त सभी स्क्रिप्ट टाइप कर सकता हूं लेकिन --image "..." को --image "/ usr / स्थानीय / बिन / oof2" से बदल सकता हूं और यह चलता है, मुझे लगता है। यह निम्नलिखित कहता है: प्रक्रिया '...' ने प्रक्रिया को समाप्त कर दिया एक्जिट कोड = 1 (स्थिति = 500 [सफलतापूर्वक समाप्त हो गया]) समापन अतिथि सत्र ... यह बेहतर लग रहा है, लेकिन मुझे यकीन नहीं है कि अगला कदम क्या है। यदि मैं टर्मिनल में '/ usr / ...' टाइप करता हूं, तो यह oof2 के लिए GUI लाता है। मुझे पाठ संस्करण को चलाने और इसे एक स्क्रिप्ट लोड करने की आवश्यकता है (मैं टर्मिनल में टाइप करता हूं / usr / स्थानीय / बिन / oof2 --text) और यह बूट करता है)। कोई विचार?
होयिंगो

oof2 --helpया oof2 -hदेखें कि क्या इसे स्क्रिप्ट पास करने का कोई विकल्प है। लेकिन अगर आप GUI एप्लिकेशन शुरू करने का प्रयास कर रहे हैं, तो आपके पास एक कठिन समय हो सकता है क्योंकि वर्चुअलबॉक्स आपके उपयोगकर्ता के लिए एक नया सत्र शुरू कर रहा है जो वर्तमान डेस्कटॉप से ​​संबद्ध नहीं होगा।
हेवीड

जवाबों:


1

यहाँ vboxmanageकमांड से मदद मिलती है :

 guestcontrol              <uuid|vmname>

                             exec[ute]
                             --image <path to program> --username <name>
                             [--passwordfile <file> | --password <password>]
                             [--domain <domain>] [--verbose] [--timeout <msec>]
                             [--environment "<NAME>=<VALUE> [<NAME>=<VALUE>]"]
                             [--wait-exit] [--wait-stdout] [--wait-stderr]
                             [--dos2unix] [--unix2dos]
                             [-- [<argument1>] ... [<argumentN>]]

तो पूरा कमांड होना चाहिए:

C:\Program Files\Oracle\VirtualBox\VBoxManage guestcontrol "Ubuntu" execute --username (myname) --password (mypassword) --verbose --wait-exit --wait-stdout --image "/usr/local/bin/oof2" -- --text

अतिरिक्त नोट करें --। उसके बाद सब कुछ प्रक्रिया के तर्क के रूप में पारित किया जाएगा।


SSH की स्थापना

  1. मेजबान मशीन पर PuTTY स्थापित करें । ( इंस्टॉलर से सीधा लिंक )
  2. VM में एक टर्मिनल खोलें और टाइप करें ip -4 addr। अपने आईपी पते के लिए देखें, यह "एथे" अनुभाग के तहत "इनसेट" शब्द के बगल में होगा (संभवतः 10.0.2.XXX होने जा रहा है)
  3. VM विंडो से, "डिवाइस" मेनू खोलें, और "नेटवर्क" -> "नेटवर्क सेटिंग्स" चुनें। वहां से "पोर्ट फ़ॉरवर्डिंग" चुनें
  4. एक नियम जोड़ें, होस्ट पोर्ट = 2222, अतिथि आईपी =, अतिथि पोर्ट = 22. सभी संवादों पर ठीक क्लिक करें।
  5. पोटीन चलाएं, localhostहोस्टनाम और 2222पोर्ट के रूप में उपयोग करें । "ओपन" पर क्लिक करें

यदि वह काम करता है और आपको एक टर्मिनल मिलता है, तो अब आप इस कमांड का उपयोग अपने आवेदन को चलाने के लिए कर सकते हैं:

C:\Program Files (x86)\PuTTY\plink.exe -P 2222 -pw mypassword myname@localhost  "/usr/local/bin/oof2" --text

क्या आपको अजगर शाप के बारे में कोई जानकारी है? यह मुझे '_curses.error: endwin () लौटाई गई ERR प्रक्रिया समाप्त'
Hogy88

मैं नहीं, लेकिन मुझे लगता है कि इसे इस तरह से चलाने के साथ करना होगा। क्या आपने इसे SSH के बजाय चलाने की कोशिश की है?
हैवीड

मेरे पास नहीं है, और मुझे नहीं पता कि अभी तक क्या है (क्षमा करें ... यदि आप होमर सिम्पसन को कोड करने की कोशिश कर रहे हैं, तो मैं बहुत करीब हूं)
Hogy88

कोई बात नहीं, यह वर्चुअल बॉक्स के बजाय नेटवर्क पर कनेक्ट करने का एक तरीका है। क्या वीएम नेटवर्क से जुड़ा है? यदि ऐसा है तो कौन सा नेटवर्क प्रकार VB (NAT, ब्रिजिड, आदि) में चुना गया है?
हैवीड

यह एक NAT कनेक्शन है।
15
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.