מופע OpenVPN עולה באתחול תחת שם שאינכם מזהים, והעצרתו עובדת עד האתחול הבא. דפוס זה אומר שהסרתם את התהליך אך לא את ההפעלה. אלה שני אובייקטים שונים, ורק אחד מהם נראה במסך מצב. מציאת ההפעלה דורשת ארבע פקודות לקריאה בלבד והחלטה אחת.

תחילה תנו שם ליחידה המדויקת

התחילו משם היחידה ביומן ולא משם קובץ פרופיל. המופע עשוי להיקרא openvpn@, openvpn-client@, openvpn-server@ או משהו ייחודי להפצה, וניחוש השם מוביל אתכם לתבנית הלא נכונה. פלט המצב מציין את היחידה שלמעשה רצה, וזה השם היחיד שחשוב כאן. העתיקו אותו במדויק, כולל כל סיומת.

הפקודות הבאות מתארות את היחידה בלי לשנות דבר. systemctl show מדווח על נתיב הקטע, נתיב המקור, מצב קובץ היחידה, כל drop-in ומה הפעיל אותה. list-dependencies --reverse מראה אילו יחידות טעונות מצביעות עליה. שתיהן לקריאה בלבד, לכן הריצו אותן לפני שאתם בונים תיאוריה.

החליפו את השם שנצפה בכל מקום. שם לדוגמה שהועתק הוא הדרך הנפוצה ביותר לחקור את השירות הלא נכון, והוא מניב תשובות בטוחות לגבי יחידה שמעולם לא רצה.

קראו את התבנית כדי לדעת את שם הקובץ

יחידת מופע היא הרחבה של תבנית, והתבנית קובעת איזה קובץ תצורה היא קוראת. שורת פקודה שמסתיימת במציין מקום ייחודי למופע מפורשת לשם המופע בתוספת הסיומת. אם הסיומת היא .conf והמופע נקרא old, הקובץ הוא old.conf. אם תקראו למופע old.conf, אותה תבנית תבקש old.conf.conf.

הפרט הזה מסביר סוג של כפילויות. מישהו מוסיף מופע שני תחת שם שגוי, הראשון ממשיך לרוץ, והמארח נשאר עם שתי מנהרות ויומן אחד מבלבל.

קראו את התבנית האפקטיבית ולא את הקובץ שאתם זוכרים שערכתם. drop-in יכול להחליף את שורת הפקודה, וההחלפה היא מה שרץ באתחול.

עקבו אחרי הדרך שבה היא נכנסת לטרנזקציית האתחול

שלושה מסלולים נפוצים: קישור wants מיעד, דרישה מיחידה אחרת, או יחידה שנוצרה על ידי מחולל חבילה. רשימת התלויות ההפוכות מכסה את שני הראשונים כרשומות גרף טעונות. היא אינה מכסה טיימר, וו או בקשה חיצונית, ולכן הרשימה היא ראיה ולא ביקורת מלאה.

פלט שנוצר תחת /run/systemd/generator הוא תוצר, לא מקור. עריכתו שורדת רק עד היצירה הבאה, ולכן תיקון שהוחל שם נראה מוצלח ואז חוזר לאחור.

בדקו את הקלט המתועד של החבילה לפני שאתם מניחים מהיכן המחולל קורא. סריקה לא מתועדת של תיקייה היא הסיבה הרגילה לכך שיחידה מופיעה בלי קישור הפעלה.

הסירו את ההפעלה, לא רק את התהליך

אם המופע מופעל ישירות ובאמת מיושן, systemctl disable --now עוצר אותו ומסיר את קישור האתחול בצעד אחד. בדקו קודם שהמנהרה הזו אינה נתיב הניהול היחיד שלכם למארח. הפקודה היא דוגמה למחזור חיים, לא הצעה לעצור כל VPN במכונה. הריצו את הבדיקה לפני הפקודה, לא אחריה.

שני החצאים ניתנים להפרדה ולעיתים קרובות מתבלבלים. השבתה אינה עוצרת שירות שרץ, ועצירה אינה מסירה הפעלה, ולכן פקודה חלקית מסבירה בעיה שחוזרת באתחול.

יחידה מושבתת עדיין יכולה להיות מופעלת על ידי יחידה אחרת או על ידי בקשה מפורשת. כשהמחולל מחזיק בהפעלה, תקנו את הקלט שלו במקום להשבית את הפלט. הסוואה חוסמת יותר נתיבים אך עלולה לשבור תלויות, ולכן אינה מחליפה הבנה.

ודאו באמצעות אתחול מחדש, לא באמצעות מסך מצב

טענו מחדש את systemd אם הגדרות היחידות או קלטי המחולל השתנו, ואז בדקו את המצב שנוצר. טעינה מחדש של הדמון אינה דוחפת פרופיל חדש למנהרה שרצה, ולכן שתי הבדיקות נפרדות. תזמנו אתחול מחדש וודאו שהמופע נשאר נעדר בזמן שהמנהרה המיועדת עדיין עובדת.

שמרו את הפרופיל הישן עד שהבעלות עליו תובן, ואז הוציאו אותו משימוש בתהליך המיועד. הצלחה היא יחידה נעדרת ונתיב גישה עובד, לא יחידה כושלת שחסרה במסך אחד.

מאמרים קשורים