Xvfb के लिए तैयार होने के लिए कैसे मतदान करें?


11

ट्रैविस सीआई प्रलेखन चलाने के लिए कहते हैं sleep 3शुरू करने के बाद xvfb"दे [यह] कुछ समय शुरू करने के लिए" करने के लिए। मुझे manपेज में इस देरी का कोई संदर्भ नहीं मिला । क्या यह कार्गो पंथ प्रोग्रामिंग है? यदि उपलब्ध नहीं है, तो मैं यह सुनिश्चित करने के लिए नींद की बजाय मतदान कैसे करूं ?

जवाबों:


6

डिफ़ॉल्ट रूप Xvfbसे ग्राहकों को जोड़ने के लिए एक यूनिक्स डोमेन सॉकेट बनाएगा। मेरे सिस्टम पर यह फ़ाइल सॉकेट फ़ाइल में बनाई गई है /tmp/.X11-unix/। आप inotifywaitइस निर्देशिका में घटनाओं को सुनने के लिए उपयोग कर सकते हैं । उदाहरण के लिए,

 $ inotifywait -e create /tmp/.X11-unix/

और फिर रन Xvfb :9(प्रदर्शन 9, उदाहरण के लिए)। जब यह तैयार हो जाए तो आपको देखना चाहिए

/tmp/.X11-unix/ CREATE X9

से inotifywaitजो समाप्त कर देगा। अब आप से कनेक्ट करने में सक्षम होना चाहिए DISPLAY=:9


यह एक ऐसी प्रणाली पर काम करेगा जहां मैं उचित नौकरी नियंत्रण की उम्मीद कर सकता हूं, लेकिन मैं ट्रैविस सीआई कॉन्फ़िगरेशन फ़ाइल में ऐसा करने की कोशिश कर रहा हूं। मुझे नहीं लगता कि मैं पृष्ठभूमि की नौकरियों का उपयोग करने और उन्हें खत्म करने के लिए इंतजार करने में सक्षम होने पर भरोसा कर सकता हूं।
l0b0

3
एक साधारण नेwhile [ ! -e /tmp/.X11-unix/X99 ]; do sleep 0.1; done वास्तव में चाल चली । पथ टिप के कारण हल के रूप में चिह्नित करना।
l0b0

1

उन लोगों के लिए जो पूरी तरह से स्क्रिप्ट चला सकते हैं, एक अन्य विकल्प xdpyinfoवांछित प्रदर्शन पर उपयोग करना होगा :

# Start Xvfb
sudo /usr/bin/Xvfb ${DISPLAY} -screen 0 1280x800x24 &

# Wait for Xvfb
MAX_ATTEMPTS=120 # About 60 seconds
COUNT=0
echo -n "Waiting for Xvfb to be ready..."
while ! xdpyinfo -display ${DISPLAY} >/dev/null 2>&1; do
  echo -n "."
  sleep 0.50s
  COUNT=$(( COUNT + 1 ))
  if [ "${COUNT}" -ge "${MAX_ATTEMPTS}" ]; then
    echo "  Gave up waiting for X server on ${DISPLAY}"
    exit 1
  fi
done
echo "  Done - Xvfb is ready!"

( Https://gist.github.com/tullmann/476cc71169295d5c3fe6 से प्रेरित उत्तर )।


धन्यवाद! बस सिंगल xdpyinfoलाइन पर्याप्त होगी; लूप को एक लाख अलग-अलग तरीकों से किया जा सकता है।
l0b0

यकीन है कि यह कई तरीकों से किया जा सकता है। हालाँकि, यह स्निपेट सुंदर-मुद्रित आउटपुट बनाता है, जो आपको यह भी पता लगाता है कि Xvfb को तैयार होने में कितना समय लगा। मैंने लिखा है कि अपने स्वयं के उपयोग के लिए, लेकिन एहसास हुआ कि दूसरों को भी इससे लाभ मिल सकता है।
एंटोन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.