फ़ायरफ़ॉक्स, दो लिनक्स मशीनें, एक एक्स-सर्वर


10

मेरे पास एक लिनक्स मशीन है जो मैं नियमित रूप से विंडोज़ से ssh (पोटीन) के माध्यम से लॉग ऑन करता हूं। मैं अपने विंडोज डेस्कटॉप पर VcXsrv X- सर्वर चला रहा हूं। मैं मुख्य रूप से हमारे वेब-आधारित कोड समीक्षा प्रणाली तक पहुंचने के लिए डिबगर (ddd) और फ़ायरफ़ॉक्स चलाने के लिए इसका उपयोग करता हूं। लिनक्स फ़ायरफ़ॉक्स का उपयोग करना सुविधाजनक है इसलिए मैं इसे स्क्रिप्ट से लॉन्च कर सकता हूं। मैं इसे सामान्य रूप से "-new-tab" के साथ लॉन्च करता हूं ताकि नई विंडो नहीं बनाई जा सके।

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

जो मैं करने में सक्षम होना चाहता हूं वह अभी भी एक नए टैब के रूप में लॉन्च किया जा रहा है, लेकिन केवल वर्तमान मशीन से फ़ायरफ़ॉक्स के उदाहरण के तहत, एक अलग मशीन से एक उदाहरण नहीं है जो उसी एक्स-सर्वर पर प्रदर्शित होने के लिए होता है।

मैं विभिन्न झंडों के साथ चारों ओर खेल रहा हूं, जिसमें-रिमोट, -न्यू-इंस्टेंस और विशिष्ट प्रोफाइल को परिभाषित करना और उपयोग करना भी शामिल है। हालाँकि मैं वांछित परिणाम प्राप्त करने में असमर्थ रहा हूँ। या तो मुझे मेरे द्वारा वर्णित व्यवहार मिलता है, या मुझे एक त्रुटि मिलती है, जैसे "फ़ायरफ़ॉक्स पहले से ही चल रहा है, लेकिन जवाब नहीं दे रहा है, कृपया इसे बंद करें"।

संपादित करें: मुझे कुछ उदाहरण प्रदान करने के लिए इसे संपादित करने के लिए कहा गया है।

ठीक। निम्न में से मैं M_OLD और M_NEW का संदर्भ लूंगा। ये अलग-अलग मशीनें हैं जो लिनक्स के विभिन्न संस्करणों को फ़ायरफ़ॉक्स (1.5 और 19) के विभिन्न संस्करणों के साथ चला रही हैं। मैं उन दोनों से कनेक्ट करता हूं, जो पोटीन नामक एक एसएचएस क्लाइंट के माध्यम से हैं और अपने विंडोज डेस्कटॉप पर एक्स सर्वर के लिए एक्स फॉरवर्ड कर रहा हूं। केवल एक एक्स सर्वर शामिल है।

उदाहरण 1:

इसलिए मेरे पोटीन सत्र से लेकर M_OLD तक मैं चलता हूं:

firefox www.google.com &

और मेरे M_NEW पोटीन सत्र से मैं चलता हूं:

firefox www.imdb.com &

तो मुझे दो टैब के साथ एक फ़ायरफ़ॉक्स 1.5 विंडो मिलती है। अगर मैं रिवर्स में भी ऐसा ही करता हूं तो मुझे वही परिणाम मिलता है लेकिन फायरफॉक्स 19 के साथ। दूसरे शब्दों में, जैसा कि नीचे एक टिप्पणी में वर्णित है, पहला कमांड फायरफॉक्स का एक उदाहरण लॉन्च करता है दूसरा बस एक नया टैब खोलने के लिए मौजूदा उदाहरण बताता है। भले ही उदाहरण किसी अन्य मशीन पर हो, जब तक कि वह एक ही एक्स सर्वर न हो।

हालाँकि मैं यह नहीं चाहता। मैं अलग-अलग मशीनों के लिए अलग-अलग उदाहरण चाहता हूं। इसलिए:

उदाहरण 2:

इसलिए मेरे पोटीन सत्र से लेकर M_OLD तक मैं चलता हूं:

firefox -no-remote www.google.com &

और मेरे M_NEW पोटीन सत्र से मैं चलता हूं:

firefox -no-remote www.imdb.com &

अब मेरे पास फ़ायरफ़ॉक्स के दो अलग-अलग उदाहरण हैं। हालाँकि अगर मैं M_NEW पर चलता हूँ:

firefox -no-remote www.google.com &

मैं लाऊंगा

Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system.

और भले ही मैं कोशिश करूं

firefox -no-remote -new-instance www.google.com &

या केवल

firefox -new-instance www.google.com &

तब मुझे अभी भी त्रुटि मिलेगी।

मैं वास्तव में क्या चाहता हूं - और यह संभव नहीं हो सकता है - प्रत्येक मशीन के लिए एक अलग उदाहरण है लेकिन अगर उस मशीन से एक नया URL लॉन्च किया जाता है तो यह एक नया टैब खोलता है। ऐसा लगता है कि जैसे कि मैं या तो प्रत्येक URL के लिए नए टैब के साथ एक ही उदाहरण रख सकता हूं, या प्रति मशीन एक उदाहरण, लेकिन केवल एक बार।

उम्मीद है कि यह स्पष्ट है।


क्या आप स्पष्ट कर सकते हैं? नई लिनक्स मशीन कैसे प्रासंगिक है? आप अपने विंडोज मशीन पर X को अग्रेषित कर रहे हैं? क्या आप एक ही समय में दोनों लिनक्स बॉक्स से जुड़े हैं? कृपया प्रत्येक बॉक्स से कैसे कनेक्ट करें, इस पर कुछ और विवरण दें।
टेराडॉन

ठीक है, इसलिए जब समस्या होती है तो आप दोनों मशीनों से ssh -Xसही से जुड़े होते हैं ?
टेराडो

हां, मैं अपनी विंडोज मशीन में X अग्रेषित कर रहा हूं। हां मैं दोनों से जुड़ा हूं। नई मशीन प्रासंगिक है क्योंकि मैं भी इससे फ़ायरफ़ॉक्स शुरू कर रहा हूं। हालाँकि फायरफॉक्स के एक नए उदाहरण को लॉन्च करने के बजाय यह मौजूदा उदाहरण में एक नया टैब खोलता है - एक जो पुरानी मशीन से लॉन्च किया गया था। यह ऐसा है जैसे कि नई फ़ायरफ़ॉक्स प्रक्रिया यह देखने के लिए जांचती है कि क्या फ़ायरफ़ॉक्स उस एक्स सर्वर पर चल रहा है और यदि ऐसा है तो यह एक नया टैब खोलने के लिए एक संदेश भेजता है। जो बहुत चालाक है लेकिन मैं जो चाहता हूं वह नहीं। "पुराना" और "नया" केवल अब तक प्रासंगिक है क्योंकि वे फ़ायरफ़ॉक्स के बहुत भिन्न संस्करण हैं। सही बात?
पॉलएम

1
आप जो वर्णन कर रहे हैं, वह सामान्य है (जैसा कि मुझे मेरे आश्चर्य का पता चला ), मुझे नहीं मिला कि यह कैसे चल रहा है, --no-remoteहालांकि यह तय नहीं है । क्या आप अपना प्रश्न संपादित कर सकते हैं और हमें बता सकते हैं कि आपको "फ़ायरफ़ॉक्स पहले से चल रहा है" संदेश कब मिला? रनिंग firefox -no-remote को रिमोट मशीन पर चल रहे एक नए फ़ायरफ़ॉक्स इंस्टेंस को शुरू करना चाहिए लेकिन आपके स्थानीय एक्स सर्वर पर प्रदर्शित होना चाहिए
टेराडॉन

1
मुझे लगता है कि आपको पी-पी भी जोड़ना पड़ सकता है -p -no-remote। यह एक नई एफएक्स प्रोफाइल के साथ शुरू करने की अनुमति देता है। कमांड लाइन विकल्प देखें । मौजूदा Fx प्रक्रिया से जुड़ने के लिए आप प्रयास कर सकते हैं firefox https://www.mozilla.orgयाfirefox -remote "openURL(https://www.mozilla.org, new-tab)"
vWil

जवाबों:


1

विशिष्ट फ़ायरफ़ॉक्स उदाहरण (जैसे के साथ बनाया गया --no-remote) में अलग-अलग प्रोफ़ाइल होनी चाहिए।

विकल्प 1: फ़ायरफ़ॉक्स चलाने वाले प्रत्येक सिस्टम के लिए दो, (या अधिक) प्रोफाइल बनाएं। उदाहरण

firefox --no-remote -CreateProfile localuser
firefox --no-remote -CreateProfile host2

अब फ़ायरफ़ॉक्स शुरू करें और स्टार्टअप पर एक प्रोफ़ाइल चुनें

firefox --no-remote -P localuser

या

firefox --no-remote -P host1

विकल्प 2: स्टार्टअप पर "डिस्पोजेबल" प्रोफाइल बनाने के लिए डायनामिक सॉल्यूशन सेट करें, जैसे की तर्ज पर एक विराम:

TEMPPROFILE=$(date +%Y%m%d%H%M%S)
firefox --no-remote -CreateProfile $TEMPPROFILE 2>/tmp/.mozprofile.$TEMPPROFILE
firefox --no-remote -P $TEMPPROFILE

आप बाद में अस्थायी प्रोफ़ाइल को हटाने के लिए चरण जोड़ना चाह सकते हैं (निकालने की direcotry CreateProfile कमांड से आउटपुट पार्स करके प्राप्त किया जा सकता है, ऊपर दिए गए कमांड के माध्यम से /tmp/.mozprofile.$ThPPROFILE में संग्रहीत किया गया है


पहले से ही कोशिश की है कि - "उदाहरण 2 देखें"
पॉलएम

आह हाँ, सच - अलग उदाहरणों को अलग-अलग प्रोफाइल का उपयोग करना होगा।
जोहान

आपके द्वारा प्रस्तावित पहला "विकल्प" वास्तव में कोई मतलब नहीं था, इसलिए मैंने प्रस्तावित किया है कि इसे आपके उत्तर से हटा दिया जाए।
सामब

हालांकि, वास्तव में, यह बिना काम कर सकता है -no-remote...
सैमबी

0

ठीक है ... अगर यह काम करेगा पता नहीं है, लेकिन यह पहली चीज है जो मैं कोशिश करूँगा:

यदि आप प्रत्येक मशीन पर एक दूसरी स्क्रिप्ट बनाते हैं, तो नया टैब बनाने की कोशिश नहीं की जाती है, तो बस एक नया उदाहरण कैसे। यदि आपके पास वर्तमान में उस मशीन पर चलने वाला FF नहीं है, तो आप इस नई स्क्रिप्ट का उपयोग करते हैं, लेकिन यदि यह पहले से चल रहा है, तो आप पुरानी स्क्रिप्ट का उपयोग करते हैं जो नया टैब बनाता है।

यदि यह काम करता है, तो आप एक स्क्रिप्ट में पीएस आउटपुट के कुछ रेगेक्स पार्सिंग करने में सक्षम हो सकते हैं यह देखने के लिए कि क्या एफएफ मशीन पर पहले से चल रहा है, और या तो -न्यू-टैब स्विच या -नो-रिमोट का उपयोग करें, जो इस पर निर्भर करता है पाता; लेकिन आप शायद इस विधि का परीक्षण होने तक इंतजार करना चाहते हैं, क्योंकि यह उस चीज़ के लिए कोडिंग की एक उचित मात्रा है जो शायद काम नहीं करती है ...।


लगता है कि यह काम कर सकता है - लेकिन tbh मैं इस पर छोड़ दिया। M_OLD को जल्द ही डीकोमिशन किया जा रहा है।
पॉलएम

0

XRemoteClient.cpp को देखते हुए , मुझे लगता है कि आपको करना चाहिए:

user@host1$ firefox -CreateProfile profile1

तथा:

user@host2$ firefox -CreateProfile profile2

फिर, जब आप कहीं जाना चाहते हैं, तो कुछ ऐसा करें

user@host1$ firefox -P profile1 -new-tab http://example.com

या, ठीक है, मुझे लगता है कि आप अनुमान लगा सकते हैं कि host2 पर क्या करना है।

जाहिर है, आप बेहतर नाम चुन सकते हैं। यह भी ज्यादा मायने नहीं रखता है कि आप प्रोफाइल कैसे बनाते हैं। कमांड लाइन पर एक प्रोफ़ाइल नाम निर्दिष्ट करने के लिए महत्वपूर्ण बात यह है कि हर बार जब आप इसे लागू करते हैं, जहां प्रत्येक उदाहरण का अपना प्रोफ़ाइल नाम होता है।

यह भी काम कर सकते हैं


0

अगर आपको अभी भी ज़रूरत है तो मेरे पास एक बहुत ही सुंदर समाधान है । अभी के लिए मेरे पास, जैसे, फ़ायरफ़ॉक्स चलाने के 5 स्वतंत्र उदाहरण और जितना मैं चाहता हूँ।

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