मुझे जैसी कमांड देने की जरूरत है
Xvfb: 6-स्क्रीन 0 1024x768x24
जहां 6 एक डिस्प्ले नंबर हो सकता है। अब Xvfb पहले से ही उस डिस्प्ले का उपयोग कर रहा है, इसलिए मुझे पहला डिस्प्ले नंबर कैसे नहीं मिलेगा?
मुझे जैसी कमांड देने की जरूरत है
Xvfb: 6-स्क्रीन 0 1024x768x24
जहां 6 एक डिस्प्ले नंबर हो सकता है। अब Xvfb पहले से ही उस डिस्प्ले का उपयोग कर रहा है, इसलिए मुझे पहला डिस्प्ले नंबर कैसे नहीं मिलेगा?
जवाबों:
एक आसान तरीका हो सकता है, लेकिन मैं एक स्क्रिप्ट लिखूंगा जो xdpyinfo के साथ डिस्प्ले को क्वेरी करता है ।
बहुत अधिक 3 मामले हैं:
प्रदर्शन मौजूद है, और आपके शेल की डिस्प्ले तक पहुंच है। xdpyinfo बहुत सारी जानकारी बाहर थूक देगा।
प्रदर्शन मौजूद है, और आपके शेल में डिस्प्ले की पहुंच नहीं है। xdpyinfo इस तरह से एक एक्सेस एरर और एक ओपन-टू-ओपन एरर थूक देगा:
Invalid MIT-MAGIC-COOKIE-1 keyxdpyinfo: unable to open display ":0".
प्रदर्शन मौजूद नहीं है। xdpyinfo एक असमर्थित -टू-ओपन त्रुटि को थूक देगा:
xdpyinfo: unable to open display ":1".
एक स्क्रिप्ट कुछ इस तरह दिखाई देगी:
#/bin/bash
CHECKDISPLAY=0
DONE="no"
while [ "$DONE" == "no" ]
do
out=$(xdpyinfo -display :$CHECKDISPLAY 2>&1)
if [[ "$out" == name* ]] || [[ "$out" == Invalid* ]]
then
# command succeeded; or failed with access error; display exists
(( CHECKDISPLAY+=1 ))
else
# display doesn't exist
DONE="yes"
fi
done
echo "first available display is :$CHECKDISPLAY"
xvfb- रन में एक ध्वज होता है --auto-servernum
जो X लॉक फ़ाइलों की तलाश में काम करता है /tmp
।
एक एकल पंक्ति में स्क्वीज़ किया गया जिसे आप अपने .bashrc में उपनाम दे सकते हैं, यह इस तरह दिखता है:
i=0; while [ -f /tmp/.X$i-lock ]; do i=$(($i + 1)); done; echo $i
यदि आप केवल Xvfb के प्रदर्शन सेट के साथ एक प्रोग्राम चलाने की कोशिश कर रहे हैं, तो मैं सिर्फ xvfb- रन का उपयोग करूंगा।