openvpn --errors-to-stderr הוא אפשרות הפעלה, לא שגיאה
לראות --errors-to-stderr בשורת פקודה לא אומר שמשהו נכשל. קבעו אם אתם קוראים שורת הפעלה או פלט של התהליך, ואז בדקו.
שורת פקודה שמכילה --errors-to-stderr נראית כמו תלונה ואינה כזו. המילה שייכת לשם של אפשרות, בדיוק כפי ששם של קובץ יומן אינו אומר דבר על מה שהקובץ מכיל. לפני שתשנו כל תצורה, קבעו מה אתם קוראים בפועל.
להחלטה שלושה ענפים: השורה היא ההפעלה עצמה, השורה היא פלט שהתוכנית הדפיסה, או השורה היא טקסט שמעטפת הדהדה לפני שה-VPN התחיל. כל ענף מצביע על מקום אחר לבדוק, ורק אחד מהם הוא ההודעה של ה-VPN עצמו.
שם של אפשרות אינו הודעת מצב
עבור Community OpenVPN, --errors-to-stderr מפנה את פלט השגיאות לשגיאה התקנית במקום לפלט התקני. זו בחירה של זרם, לא מסנן חומרה, והיא אינה יוצרת שגיאה. --log או --log-append מאוחרים יכולים להפנות את אותן הודעות לקובץ, ולכן ההשפעה של הדגל תלויה בשאר הפקודה. תיעוד היומן מהמקור קובע את הסדר הזה.
אם כן, נוכחות הדגל אומרת לאן השגיאות יגיעו. היא אינה אומרת שאחת התרחשה.
שורת הפעלה או פלט של התהליך
התחילו בשאלה מי הדפיס את הטקסט. יחידת שירות, חבילת יישום או מעטפת נוהגות להדהד את כל ה-argv לפני שתהליך ה-VPN כותב משהו. לא ניתן להבחין בין הדהוד כזה לבין שורת מצב אם רואים רק קטע.
אם השורה הגיעה מהמעטפת, ה-VPN עוד לא רץ ואין לו מה לדווח. חפשו בהמשך הפלט את ההודעה הראשונה שנושאת חותמת זמן או שם תת-מערכת.
אם השורה הגיעה מתהליך ה-VPN, היא עדיין רק הקריאה. OpenVPN אינו מדפיס את שורת הפקודה שלו כשגיאה, וההודעות החשובות מגיעות אחריה.
מצאו את התהליך ואת התוצאה שלו
קבעו אם התהליך עדיין רץ. לקוח שפעיל ומנסה שוב נראה שונה מאוד מלקוח שיצא מיד, ואותה שורת פקודה עומדת לפני שניהם.
לאחר מכן קראו את התוצאה דרך הרכיב שבעל התהליך. ב-systemd זהו היומן של היחידה; ביישום שולחני זהו היומן או הקונסולה של היישום עצמו. מצב היציאה יחד עם ההודעות האחרונות עונים על השאלה ששם האפשרות רק רומז לה.
שגיאת ניתוח תצורה, קובץ חסר, אישור שנדחה ופגיעת זמן של העמית הם ארבעה אירועים שונים. הם מגיעים באותו זרם. הם זקוקים לארבעה תיקונים שונים. החליטו איזה מהם יש לכם לפני שתיגעו בפרופיל, וצטטו את ההודעה המדויקת כשאתם מבקשים עזרה.
מתי הדגל מזכה את מקומו
הדגל מזכה את מקומו כאשר stdout נושא נתונים ואסור לשגיאות לזהם אותו, או כאשר מעטפת לוכדת את שני הזרמים בנפרד. בהפעלה בחזית במסוף, שני הזרמים נוחתים מולכם. במקרה כזה ההבחנה רק לעתים רחוקות משנה את מה שאתם עושים.
השאירו אותו אם הסקריפט שמסביב תלוי בהפרדה. הסרתו מפני שהשם נראה מדאיג משנה היכן ההודעות מופיעות ואינה מתקנת דבר אחר.
מה לא לשנות
אל תתייחסו לאפשרות כאל שלב תיקון. מחיקתה אינה יכולה לתקן תעודה, נתיב או כשל אימות.
אם הקריאה מכילה --config stdin, התצורה מוזנת דרך הקלט התקני. זו החלטה נפרדת לגבי אופן אספקת הקובץ. שנו דבר אחד בכל פעם, וקראו שוב את ההודעה בפועל לפני שתשנו את השני.