सूक्ति-टर्मिनल की सच्ची कई प्रक्रियाएँ चलाएँ


17

यदि आपके पास gnome-terminalचल रहा है, और प्रोग्राम का एक नया उदाहरण चाहते हैं, तो आप सोच सकते हैं कि gnome-terminal &शेल से चलने से चाल चलेगी।

आश्चर्यजनक रूप से, यह नया उदाहरण कुछ इनसिपिड विंडोज या मैक प्रोग्राम की तरह है; यह केवल मौजूदा को एक संदेश भेजता है, gnome-terminalएक नई विंडो बनाने के लिए चल रहा है। यदि यह एक gnome-terminalप्रक्रिया क्रैश हो जाती है, तो आप सभी टर्मिनल विंडो खो देते हैं!

(बेशक, प्रत्येक विंडो का अपना शेल होता है, जो एक स्वतंत्र प्रक्रिया है, लेकिन वास्तविक टर्मिनल एमुलेटर और इसके जीयूआई को एप्लिकेशन के एक ही उदाहरण से प्रबंधित किया जाता है।)

हम gnome-terminalअपनी प्रक्रिया में चलने वाले प्रत्येक के स्वतंत्र उदाहरण कैसे बना सकते हैं , ताकि उस प्रक्रिया को मारने से केवल उस प्रक्रिया से जुड़ी विंडो (एस) नष्ट हो जाएं?


आपको इसके साथ सफलता मिल सकती है gnome-terminal --disable-factory, हालांकि इसके लिए समर्थन स्पष्ट रूप से वापस लिया जा रहा है
स्टीलड्राइवर

@steeldriver यह काम करने लगता है; एक जवाब में बनाने के लिए देखभाल? मुझे समर्थन वापस लिए जाने की परवाह नहीं है। यह खोजना इतना कठिन क्यों है? क्योंकि दस्तावेज़ --disable-factoryकिसी भी मानक शब्दावली का उपयोग नहीं करता है, जैसे "एक नई प्रक्रिया में शुरू (या पते की जगह), मौजूदा उदाहरण का फिर से उपयोग न करें"।
कज़

तुलना करें unix.stackexchange.com/questions/323663
JdeBP

2
मैं विश्वास नहीं कर सकता कि इन परियोजनाओं को चलाने वाले लोग इस तरह के भद्दे निर्णय लेते रहते हैं। क्या हमने कुछ नहीं सीखा? कौन कुछ किलोबाइट की रैम की परवाह करता है? कोई यह सोचेगा कि टर्मिनलों को एक दूसरे से दुर्घटनाग्रस्त होने से बचाना # 1 प्राथमिकता होनी चाहिए। वापस rxvtमुझे लगता है।
टोबिया

वास्तव में, मैं rxvtकिसी को भी एक सच्चे बहु-प्रक्रिया टर्मिनल की सिफारिश कर सकता हूं । इसमें Truetype फॉण्ट सपोर्ट, लंबी लाइनों की री-रैपिंग और आधुनिक टर्मिनलों की अधिकांश अन्य विशेषताएं हैं।
तोबिया

जवाबों:


9

के अनुसार man gnome-terminal, आप जिस विकल्प की तलाश कर रहे हैं वह भ्रामक रूप से नामांकित प्रतीत होता है

   --disable-factory
             Do not register with the activation name server, do 
             not re-use an active terminal.

हालाँकि, विकल्प को अधिक हालिया रिलीज़ में हटा दिया गया है, इसलिए उस पर भरोसा नहीं किया जाना चाहिए।


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

मैंने rxvt, aterm, eterm, xterm, टर्मिनेटर और कुछ अन्य लोगों की कोशिश की। वे सभी आसानी से अलग-अलग प्रक्रियाओं के रूप में चलते हैं, लेकिन अन्य तरीकों से चूसना। Rxvt की हॉटकीज़ के आकार वाले दस्तावेज़ काम नहीं करेंगे। Aterm और xterm सादा उस विभाग में चूसना। टर्मिनेटर में अजीब आकार होता है जो विंडो आकार के बिना फ़ॉन्ट आकार बदलता है। ETerm सिर्फ चार निश्चित फोंट के साथ पूरी तरह से निराला है; मैंने लगभग 30 मिनट के लिए विकल्पों के साथ खेला, फिर इसे अनइंस्टॉल कर दिया।
कज़

@ Kaz xterm + xdotool --window "$WINDOWID"?
गिल्स एसओ- बुराई को रोकें '

@Kaz आप इस पर जिस तरह से शायद कर रहे हैं, लेकिन मैं यह सुझाव देते हैं urxvtअधिक rxvt। और हाँ, gnome-terminalअभी भी ग्राफिक रूप से बेहतर है, लेकिन मैंने किसी तरह इसे याद नहीं करना सीखा। यह शायद नए विंडो मैनेजर के साथ करने के लिए बहुत कुछ है ( i3अभी उपयोग कर रहा है लेकिन यह सभी के लिए नहीं है)।
cprn

दर्जन से अधिक अन्य परिवाद आधारित टर्मिनलों में से किसी में देखें? गनोम-टर्मिनल सिर्फ एक एप्लिकेशन है जो ऊपर उल्लिखित बाकी के विपरीत उस पुस्तकालय के साथ इंटरफेसिंग को समाप्त करता है जो अपने स्वयं के टर्मिनल संशोधनों का उपयोग करते हैं।
ड्रैगन 788

17

नए क्लाइंट / सर्वर आर्किटेक्चर ( यहां विवरण ) के कारण आपको अलग-अलग इंस्टेंसेस शुरू करने होंगे gnome-terminal-server। ऐसा करने के लिए आप --app-idस्विच का उपयोग कर सकते हैं :

/usr/lib/gnome-terminal/gnome-terminal-server --app-id my.first.Terminal

फिर नए सर्वर के अंदर टर्मिनल 1 बनाने के लिए क्लाइंट (उसी ऐप-आईडी के साथ) का उपयोग करें:

gnome-terminal --app-id my.first.Terminal
gnome-terminal --full-screen --app-id my.first.Terminal
......

एक अन्य दृष्टांत:

/usr/lib/gnome-terminal/gnome-terminal-server --app-id my.second.Terminal

और टर्मिनलों:

gnome-terminal --geometry 80x24+200+200 --app-id my.second.Terminal
gnome-terminal --app-id my.second.Terminal
.....

पथ gnome-terminal-serverआपके सिस्टम पर भिन्न हो सकता है।


1: ध्यान दें कि "आपके पास नए सर्वर के अंदर टर्मिनल बनाने के लिए क्लाइंट का उपयोग करने के लिए 10 सेकंड हैं"


क्या आप एक काम का उदाहरण दे सकते हैं या इस सवाल पर एक नज़र डाल सकते हैं
cprn

@CyprianGuerra - एक गनोम-टर्मिनल में दो टैब खोलें: पहले टैब में मेरे उदाहरण में पहली कमांड चलाएं (जो कि नया सर्वर शुरू करना है), फिर 10 सेकंड से भी कम समय में , दूसरे टैब पर स्विच करें और दूसरा कमांड चलाएं (एक नया ग्राहक शुरू करने के लिए) अपनी आवश्यकताओं के अनुसार ...
don_crissti

टैब ... मैं कोशिश करूँगा। अभी के लिए मैं बता सकता हूं कि यह अंदर काम नहीं करता है screen
cprn

क्या टैब की आवश्यकता है? जैसे: क्लाइंट टर्मिनल प्रक्रिया में सर्वर का एक बच्चा होना चाहिए?
cprn

@CyprianGuerra - यह सिर्फ एक उदाहरण था, उन्हें उस चीज की आवश्यकता नहीं है जो मैं देख सकता हूं ...
don_crissti

1

मैं mc के साथ संघर्ष कर रहा था अन्य टर्मिनल विंडो के रूप में एक ही alt-tab समूह में और इस समाधान पाया।

https://chrisirwin.ca/posts/multiple-instances-of-gnome-terminal/

लड़का (क्रिस इरविन) अपनी मेल दिनचर्या के लिए इसे हल करता है। मैंने पूरी सफलता के साथ mc आइकन के अलावा पूरी-टैब के भीतर mc के लिए भी ऐसा ही किया, लेकिन यह ठीक है।

आपको 3 फ़ाइलों की आवश्यकता होगी:

/usr/share/dbus-1/services/org.gnome.Terminal-mc.service

[D-BUS Service]
Name=org.gnome.Terminal-mc
SystemdService=gnome-terminal-server-mc.service
Exec=/usr/lib/gnome-terminal-server --class=org.gnome.Terminal-mc --app-id org.gnome.Terminal-mc

/usr/lib/systemd/user/gnome-terminal-server-mc.service

[Unit]
Description=GNOME mc Terminal Server
[Service]
KillMode=process
Type=dbus
BusName=org.gnome.Terminal-mc
ExecStart=/usr/lib/gnome-terminal-server --class=org.gnome.Terminal-mc --app-id org.gnome.Terminal-mc

/usr/local/share/applications/mc.desktop

यह मध्यरात्रि कमांडर के लिए आपकी डेस्कटॉप प्रविष्टि है। या तो इसे सीधे संपादित करें /usr/share/applications/...या इसे वहां से स्थानांतरित करें /usr/local/share/applications/mc.desktopताकि यह पता चल सके कि यह आपकी स्वयं की संशोधित प्रति है। किसी भी स्थिति में, Execप्रविष्टि को संशोधित किया जाना चाहिएgnome-terminal --app-id org.gnome.Terminal-mc -e mc

Exec=gnome-terminal --app-id org.gnome.Terminal-mc --hide-menubar --geometry=102x35 -e mc

उपरोक्त सभी के साथ पुरालेख

https://we.tl/t-6rH5jduMG7 यह है .tar.gz अपने में अनपैक करने के लिए /। यह mc के लिए ऊपर से .svg आइकन से फाइलें बनाएगा।

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