אם קובץ ה-PID של Squid מופיע ונעלם מיד, השוו את Type= של היחידה שנטענה לקובץ ההרצה בפועל ולפרמטרים שלו. שירות מסוג Type=simple מצפה שהתהליך שהופעל יישאר התהליך הראשי. פקודה שעוברת לדמון ומאפשרת לאותו תהליך להסתיים פועלת לפי חוזה אחר; systemd עלול לראות אותה כמושלמת ולפרק את שאר תהליכי השירות.

הגדרהאחראי ומטרה
pid_filenameSquid כותב את ה-PID שלו בנתיב הזה בגרסאות שמספקות את ההוראה
PIDFile=systemd קורא PID מהנתיב הזה במקום שבו מודל השירות הזה זקוק לו

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

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

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

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