Systemd Service File

Systemd Service File



ב-Linux, פלט סטטוס systemctl מראה שהשירות נטען דרך קובץ שנקרא קובץ השירות. ניתן לגשת לקבצים אלה ב- /lib/systemd/system אוֹ /etc/systemd/system ספריות.

לקבצי השירות יש .שֵׁרוּת הרחבות ומכילות את ההוראות הנדרשות על ידי systemd לנהל שירות.







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



במדריך, אבדוק את קובץ השירות של systemd, את המבנה שלו ואת ההנחיות העיקריות השולטות בשירות.



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





מהו Systemd Service File

ב-Linux, ה-systemd מנהל את השירותים באמצעות קבצי השירות המכילים את הוראות התצורה כדי שה-systemd יוכל להבין ולבצע.

כדי לרשום את היחידות, השתמש ב-systemctl עם ה- -יחידות-רשימה פקודה.



systemctl --יחידות-רשימה

כדי לקרוא את קובץ השירות של שירות כלשהו, ​​השתמש ב- חתול פקודה עם נתיב הקובץ.

חתול [ / שירות-קובץ-נתיב ]

לדוגמה, כדי לראות את קובץ השירות של ssh.service השתמש בפקודה הנתונה.

חתול / lib / systemd / מערכת / ssh.service

Anatomy of Systemd Service File

בדרך כלל, קבצי יחידת שירות systemd מכילים שלושה חלקים.

  • יחידה
  • שֵׁרוּת
  • להתקין

לקובץ יחידה ספציפי לשירות יהיה קטע ספציפי שנקרא שֵׁרוּת סָעִיף.

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

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

חלקים אלה מוקפים בסוגריים מרובעים ([]). כל חלק מכיל ערכת הוראות רלוונטית. מבנה כללי של קובץ שירות ניתן להלן.

[ יחידה ]

הוראה1 =הוראה 1

הוראה2 =הוראה 2

[ שֵׁרוּת ]

הוראה1 =הוראה 1

הוראה2 =הוראה 2

[ להתקין ]

הוראה1 =הוראה 1

הוראה2 =הוראה 2

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

[יחידה] מדור

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

הוֹרָאָה תיאור
תיאור הוראה זו משמשת להזכרת שם השירות. אורך התיאור לא יעלה על 80 תווים.
תיעוד הנחיה זו מכילה את דף האיש או כתובת האתר של השירות.
דורש הוראה זו משמשת להזכיר את התלות בשירות הנוכחי. אם ההפעלה של שירות תלות זה לא תתבצע, השירות הנוכחי לא יופעל.
רוצה הוראה זו משמשת להזכיר את התלות בשירות הנוכחי. עם זאת, שירות תלות זה אינו נדרש להיות מופעל כדי להפעיל את השירות הנוכחי.
לפני לאחר הפעלת היחידה הנוכחית, השירות המוזכר בהוראה זו יופעל.
לאחר לפני הפעלת היחידה הנוכחית, השירות המוזכר בהוראה זו יופעל.
BindsTo הנחיה זו מקשרת את השירות הנוכחי לשירות הנזכר. אם השירות המקושר יופעל מחדש, גם השירותים הנוכחיים יופעלו מחדש.

מלבד הנחיות אלו, קיימות שתי הנחיות נוספות; מַצָב ו לִטעוֹן. שירותים רבים דורשים תנאי מערכת ספציפיים כדי לפעול בהצלחה, והנחיות אלה משמשות להזכיר את התנאים.

[התקן] סעיף

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

הוֹרָאָה תיאור
WantedBy הנחיה זו קובעת את רמת הריצה * היעד של השירות. אם מוגדר יעד ל multi-user.target אז השירות יופעל ברמת הריצה הזו.
נדרש על ידי הנחיה זו מזכירה את WantedBy, אולם גם ללא התלות המוזכרת בהנחיה, השירות יופעל.
כינוי הוראה זו משמשת להפעלת השירות בשם אחר. קישור סימול נוצר בשם זה כאשר השירות מופעל.

בעיקר, ה multi-user.target משמש כ WantedBy פָּרָמֶטֶר. אבל מה זה multi-user.target?

ה-multi-user.target מייצג את מצב המערכת מוכן לקבל הפעלות לא גרפיות של מספר משתמשים. זוהי המדינה לפני השקת ה-GUI.

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

ב-systemd, השירותים מקובצים לפי רמות ריצה, אשר נקראות מטרות . לכל רמת ריצה יש קובץ עם .יַעַד הרחבה ב /etc/systemd/system מַדרִיך. שירות יפעל על סמך מצב רמת הריצה.

רמת ריצה יעדים מדינה קבצים
0 כיבוי כיבוי וכיבוי poweroff.target
1 לְהַצִיל מתחיל את מעטפת ההצלה rescue.target
2,3,4 רב משתמשים מפעיל מעטפת מרובת משתמשים ללא GUI multi-user.target
5 גרפי מקים מעטפת GUI מרובה משתמשים graphical.target
6 לְאַתחֵל כבה והפעל מחדש reboot.target

מדור [שירות]

סעיף זה כולל את הגדרות התצורה של השירות. התצורה העיקרית של סעיף זה היא הגדרת הסוג והפקודות שיבוצעו בתחילת השירות. סוּג ו ExecStart הן ההנחיות העיקריות המשמשות להקמת שירות.

סוגים שונים של השירות מפורטים בטבלה הבאה.

סוג שירות תיאור
פָּשׁוּט זהו סוג ברירת המחדל כאשר הסוג או שם האוטובוס אינם מוזכרים ורק ExecStart מוזכר. ה-systemd מבצע תחילה את התהליך הראשי ולאחר מכן יחידות מעקב.
מזלג סוג זה משמש לשמירה על הפעלת השירות גם אם שירות האב סגור. זה מזלג תהליך ילד לאחר סגירת תהליך ההורה.
ירייה אחת ה-systemd מבצע תחילה את התהליך הראשי וכאשר התהליך הראשי יוצא יחידות המעקב יתחילו.
dbus השירות עם dbus משמש לתקשורת עם תהליך אחר באוטובוס. אם שם האוטובוס מוזכר, התהליך יופעל לאחר רכישת שם האוטובוס.
לְהוֹדִיעַ השירות יודיע בעת תחילת התהליך. המערכת תמשיך ליחידות המעקב לאחר מתן ההודעה.
לְהִתְבַּטֵל הוא מחזיק את השירות עד שיישלחו כל המשרות הפעילות; שימושי בעיקר כדי לשפר את פלט הקונסולה.

ההנחיות הנפוצות בסעיף השירות מוזכרות להלן:

הוֹרָאָה תיאור
ExecStart זה שומר את הנתיב המלא של הפקודה שתתבצע כדי להתחיל בתהליך.
ExecStartPre זה שומר את הפקודות שצריך לבצע לפני תחילת התהליך הראשי.
ExecStartPost זה שומר את הפקודות שיש לבצע לאחר תחילת התהליך הראשי.
ExecReload זה שומר את הפקודה לטעון מחדש את תצורת השירות.
איתחול להפעיל מחדש את השירות באופן אוטומטי בנסיבות כגון על כשל, על הצלחה, על חריגה, על הפסקה, ועל כלב שמירה.
RestartSec כדי לשמור על מספר השניות שלאחר מכן השירות יופעל מחדש באופן אוטומטי.

ה ExecStart היא אחת ההנחיות המכריעות המשמשות בסעיף השירות. הוא מכיל את הנתיב המלא של קובץ ההפעלה שהשירות יבוצע עם הפעלתו.

סיכום

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