प्रॉक्सी एक बार विफल होता है। बाद के अनुरोध सफल होते हैं, फिर भी निगरानी एक और विफलता की घोषणा करती रहती है। देखें कि स्क्रिप्ट ने कल की निकास स्थिति याद रखी थी या नहीं।

यह पैटर्न चर को केवल तब अद्यतन करता है जब curl विफल होता है:

status=0
# Repeated inside a loop:
curl ... || status=$?

पहले अशून्य परिणाम के बाद, सफल पुनरावृत्ति status को अछूता छोड़ देती है। केवल curl के सफल होने से वह शून्य नहीं हो जाता।

इसके बजाय वर्तमान कमांड पर शाखा बनाएँ:

if curl --proxy socks5h://127.0.0.1:1080 --noproxy '' \
    --fail --silent --show-error --connect-timeout 3 --max-time 10 \
    https://health.example/ >/dev/null; then
    echo "check succeeded"
else
    echo "check failed"
fi

पता और समय उदाहरण हैं। यह पुराने चर को हटाता है; यह तय नहीं करता कि कौन-सी पुनर्प्राप्ति कार्रवाई उपयुक्त है।

अवलोकन संकीर्ण रखें। अनुरोध प्रॉक्सी, आगे के मार्ग, गंतव्य, TLS सत्यापन और HTTP परिणाम पर निर्भर करता है। SOCKS सेवा स्वस्थ रहते हुए भी लक्ष्य में रुकावट इसे विफल कर सकती है। अप्रत्याशित HTTP 200 पृष्ठ भी अपेक्षित सामग्री दिए बिना केवल स्थिति-आधारित जाँच पास कर सकता है।

एक नियंत्रित प्रतिक्रिया अनुबंध चुनें और विफलता का चरण बनाए रखें। हर अशून्य curl परिणाम पर प्रॉक्सी पुनः आरंभ करना स्वस्थ सत्रों को बाधित कर सकता है, जबकि असली गंतव्य समस्या अछूती रहती है।

संबंधित लेख