मैंने सुना है कि प्रदर्शन प्रबंधक के बिना ग्राफ़िकल इंटरफ़ेस के साथ प्रोग्राम लॉन्च करने का एक तरीका है - टर्मिनल से सीधे। क्या यह वास्तविक है और यदि हां, तो मैं ऐसा कैसे कर सकता हूं?
xinit
या startx
?
मैंने सुना है कि प्रदर्शन प्रबंधक के बिना ग्राफ़िकल इंटरफ़ेस के साथ प्रोग्राम लॉन्च करने का एक तरीका है - टर्मिनल से सीधे। क्या यह वास्तविक है और यदि हां, तो मैं ऐसा कैसे कर सकता हूं?
xinit
या startx
?
जवाबों:
आप उन्हें बिना डिस्प्ले मैनेजर के चला सकते हैं, लेकिन आपको एक रनिंग एक्स सेशन की जरूरत है। विवरण आपके वितरण पर निर्भर करेगा लेकिन आपको एकल टर्मिनल के साथ न्यूनतम X सत्र चलाने में सक्षम होना चाहिए
xinit
मैंने वर्षों में ऐसा नहीं किया है, लेकिन पिछली बार मैंने ऐसा किया था, जो इस तरह से कुछ देगा:
एक बार, आप सामान्य रूप से जीयूआई कार्यक्रम चला सकते हैं, अधिमानतः इसे पृष्ठभूमि में लॉन्च करके (साथ &
) ताकि आप अपने एकमात्र टर्मिनल तक पहुंच ढीली न करें।
xterm &
केवल एक अतिरिक्त टर्मिनल प्राप्त करने के लिए उपयोग करना चाहेंगे , न कि केवल xterm
। आदि
यहां एक GUI ऐप चलाने के लिए मूल बातें है, vnc
इसे कनेक्ट करने के लिए एक तरीका ( ) के साथ । पर RHEL7
और Centos 7
परिवार के साथ काम करता है । और मेरी अपनी डॉकटर-छवि से बाहर निकल गया जिसका उपयोग मैं https://github.com/xeor/dockerfiles/tree/master/crashplan/ ( Dockerfile
सेटअप के init/setup
लिए और स्टार्टअप के लिए) में स्थित क्रैशप्लेन के लिए करता हूं ।
# Needed environment variables
export DISPLAY=:99.0
export SCREEN_WIDTH=1200
export SCREEN_HEIGHT=960
export SCREEN_DEPTH=24
export GEOMETRY="${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH}"
# Needed packages
yum install -y xorg-x11-server-Xvfb x11vnc gtk2 xorg-x11-fonts-*
# Set a password (if variable vncpass is sat, else its `secret`)
mkdir -p ~/.vnc && x11vnc -storepasswd ${vncpass:-secret} ~/.vnc/passwd
# Start up the fake display and run the application you want (the `java ...` part)
xvfb-run --server-args="$DISPLAY -screen 0 $GEOMETRY -ac +extension RANDR" java .... > log/ui_output.log 2> log/ui_error.log &
# Wait for the app to start, or else, the vnc server will die before starting
sleep 5
# vnc itself
x11vnc -forever -usepw -shared -rfbport 5900 -display $DISPLAY
अब आपको सर्वर से कनेक्ट करने में सक्षम होना चाहिए: 5900 और एप्लिकेशन देखें।
हाँ। बस वही काम करते हैं जो एक डिस्प्ले मैनेजर करता है। ग्राफ़िकल लॉगिन स्क्रीन के अलावा (जो आपको इस मामले में ज़रूरत नहीं है), डिस्प्ले मैनेजर सिर्फ दो काम करता है:
आप startx
X11 को कंसोल लॉगिन से उसी तरह शुरू करने के लिए टूल का उपयोग कर सकते हैं ; यह आपकी ~/.xinitrc
फ़ाइल में सूचीबद्ध क्लाइंट द्वारा Xorg लॉन्च करेगा ।
उदाहरण के लिए, .xinitrc फ़ाइल हो सकता था startkde
या gnome-session
है, या यह अलग-अलग घटकों (विंडो प्रबंधक, एक पैनल / टास्कबार, एक डेस्कटॉप ...) सूचीबद्ध कर सकते हैं
(ध्यान दें कि xinit
और बीच के कुछ अंतर हैं startx
- आमतौर पर आपको बाद का उपयोग करना चाहिए, क्योंकि कुछ डिस्ट्रोफ में कॉन्फ़िगरेशन के कुछ महत्वपूर्ण टुकड़े होते हैं जो कि सादे xinit की उपेक्षा करेंगे, अर्थात् xserverrc
स्क्रिप्ट।)
वायलैंड के साथ, डेस्कटॉप और पैनल "कंपोज़िटर" का एक एकीकृत हिस्सा हैं, इसलिए संपूर्ण इंटरफ़ेस अतिरिक्त उपकरणों के बिना एक ही चरण में शुरू होता है। उदाहरण के लिए, आप weston
GNOME का उपयोग करके चला सकते हैं या शुरू कर सकते हैं gnome-session --session=gnome-wayland
।
आप ssh X फ़ॉरवर्डिंग (ssh-x) का उपयोग करके X एप्लिकेशन लॉन्च कर सकते हैं, (सर्वर कॉन्फ़िगरेशन में भी सक्षम होना चाहिए), बशर्ते कि आपके पास स्थानीय X डिस्प्ले हो।
हेडलेस सिस्टम पर चलने के दौरान एप्लिकेशन स्थानीय रूप से लॉन्च और प्रदर्शित होगा। सही पुस्तकालयों के लिए आपको हेडलेस सिस्टम पर X स्थापित करना होगा, और यह अधिक आधुनिक GNOME अनुप्रयोगों के साथ काम नहीं कर सकता है।
आप $DISPLAY
संलग्न एक्स डिस्प्ले पर ऐप लॉन्च करने के लिए भी उपयोग कर सकते हैं, भले ही आपका शेल एक रिमोट (ssh या कंसोल) हो। यदि आप रूट हैं और एक्स डिस्प्ले पर लॉग इन किया हुआ व्यक्ति नहीं है, तो आप xauth
सुरक्षा को ओवरराइड कर सकते हैं और वैसे भी उनके डिस्प्ले पर एक विंडो पॉप अप कर सकते हैं । यह भी काम करता है यदि आपके पास अलग-अलग मॉनिटर पर दो अलग-अलग एक्स डिस्प्ले सर्वर हैं।
एक अन्य पोस्टर में वीएनसी का उल्लेख है; मैंने इस उद्देश्य के लिए NX का भी उपयोग किया है, और मैं इसे पसंद करता हूं।