سطر أوامر يحتوي على --errors-to-stderr يبدو كشكوى وليس كذلك. تنتمي الكلمة إلى اسم خيار، تمامًا كما لا يقول اسم ملف سجل شيئًا عمّا يحتويه الملف. قبل أن تغيّر أي إعداد، حدّد ما تقرأه فعلاً.

للقرار ثلاثة فروع: أن يكون السطر هو أمر التشغيل نفسه، أو أن يكون خرجًا طبعه البرنامج، أو أن يكون نصًا صدّره غلاف قبل أن يبدأ VPN. كل فرع يشير إلى موضع مختلف للبحث، وواحد منها فقط هو رسالة VPN نفسها.

اسم خيار ليس رسالة حالة

بالنسبة إلى Community OpenVPN, --errors-to-stderr يوجّه خرج الأخطاء إلى الخرج القياسي للأخطاء بدلاً من الخرج القياسي. هذا اختيار لقناة، وليس مرشّحًا للخطورة، وهو لا ينشئ خطأً. ويمكن لـ --log أو --log-append لاحقًا إعادة توجيه الرسائل نفسها إلى ملف، ولهذا يعتمد أثر العلامة على بقية الأمر. ويحدّد مرجع التسجيل من المنبع ذلك الترتيب.

إذن يخبرك وجود العلامة إلى أين ستذهب الأخطاء. لكنه لا يخبرك بأن خطأً قد حدث.

سطر التشغيل أم خرج العملية

ابدأ بالسؤال: من طبع النص؟ غالبًا ما يطبع ملف وحدة خدمة أو حزمة تطبيق أو غلاف صدفة كامل argv قبل أن يكتب عملية VPN أي شيء. وهذا الطبع لا يمكن تمييزه عن سطر حالة إن رأيت جزءًا فقط.

إذا جاء السطر من الغلاف، فإن VPN لم يعمل بعد وليس لديه ما يبلّغ عنه. ابحث أبعد في الخرج عن أول رسالة تحمل طابعًا زمنيًا أو اسم نظام فرعي.

إذا جاء السطر من عملية VPN، فهو ما يزال مجرد الاستدعاء. لا يطبع OpenVPN سطر أوامره الخاص كخطأ، والرسائل المهمة تأتي بعده.

اعثر على العملية ونتيجتها

حدّد ما إذا كانت العملية ما تزال تعمل. العميل الذي يعمل ويعيد المحاولة يبدو مختلفًا جدًا عن عميل خرج فورًا، وسطر الأوامر نفسه يسبق كليهما.

ثم اقرأ النتيجة من خلال المكوّن الذي يملك العملية. في systemd يكون ذلك سجل الوحدة؛ وفي تطبيق سطح مكتب يكون سجل التطبيق أو وحدته الطرفية. حالة الخروج مع آخر الرسائل تجيب عن السؤال الذي يلمّح إليه اسم الخيار فقط.

خطأ تحليل الإعداد، وملف مفقود، وبيانات اعتماد مرفوضة، وانتهاء مهلة القرين أحداث أربعة مختلفة. تصل على القناة نفسها. وتحتاج إلى أربعة إصلاحات مختلفة. حدّد أيها لديك قبل أن تمسّ الملف الشخصي، واقتبس الرسالة الدقيقة عندما تطلب المساعدة.

متى تستحق العلامة مكانها

تستحق العلامة مكانها عندما يحمل الخرج القياسي بيانات ويجب ألا تلوّثها الأخطاء، أو عندما يلتقط غلاف القناتين منفصلتين. في جلسة أمامية داخل طرفية، تصل القناتان أمامك. وفي هذه الحالة نادرًا ما يغيّر التمييز ما تفعله.

أبقِها إذا كان السكربت المحيط يعتمد على الفصل. إزالتها لأن الاسم يبدو مقلقًا تغيّر موضع ظهور الرسائل ولا تصلح شيئًا آخر.

ما يجب ألا تغيّره

لا تتعامل مع الخيار كخطوة إصلاح. حذفه لا يمكن أن يصلح شهادة أو مسارًا أو فشل مصادقة.

إذا كان الاستدعاء يحتوي على --config stdin، فإن الإعداد يُغذّى عبر الإدخال القياسي. هذا قرار منفصل عن كيفية توفير الملف. غيّر شيئًا واحدًا في كل مرة، وأعد قراءة الرسالة الفعلية قبل تغيير الثاني.

مقالات ذات صلة