כיצד ליצור קובץ שירות בלינוקס

Kyzd Lyzwr Qwbz Syrwt Blynwqs



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

במדריך זה, אעבור על איך ליצור קובץ שירות מערכתי ב-Linux.







מהו קובץ שירות

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



קובץ שירות systemd מכיל הוראות שנקבעו עבור systemd לניהול השירות. הוא מכיל בדרך כלל שלושה חלקים:



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

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





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

כך נראה מבנה קבצי שירות טיפוסי.



[ יחידה ]

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

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



[ שֵׁרוּת ]

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

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



[ להתקין ]

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

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

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

קובץ שירות טיפוסי של ssh.service מובא להלן.

כיצד ליצור קובץ שירות

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

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

הערה: כדי להמשיך בשיטה המוזכרת להלן, עליך להיות בעל הרשאות שורש.

1. יצירת סקריפט

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

בואו ניצור סקריפט בספרייה הנוכחית עם השם של myscript.sh באמצעות עורך ננו.

סודו ננו myscript.sh

כעת, הוסף את הסקריפט המופיע למטה בקובץ ושמור אותו על ידי לחיצה ctrl+x ואז ו .

#!/bin/bash

הֵד '>>הנה זמן הפעולה של המערכת שלך<<' > בית / עַצמוֹ / myfile.txt

זמן פעולה >> בית / עַצמוֹ / myfile.txt

הֵד '>>הנה השימוש בזיכרון של המערכת שלך<<' >> / בית / עַצמוֹ / myfile.txt

חינם -M >> בית / עַצמוֹ / myfile.txt

לִישׁוֹן 60

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

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

ה חינם הפקודה משמשת להדפסת השימוש בזיכרון של המערכת, בעוד ה- -M הדגל משמש להדפסת הפלט ב MBs .

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

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

סודו chmod +x myscript.sh

לסקריפט יש כעת הרשאת ביצוע, בואו נמשיך לסעיף הבא.

הערה: כדי להפוך את קובץ השירות ללא שגיאות, השתמש בנתיב המוחלט של הקובץ בסקריפט bash.

2. יצירת קובץ שירות

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

CD / וכו / systemd / מערכת

אתה יכול ליצור את קובץ השירות בכל ספרייה, ובהמשך להעביר את הקובץ לספרייה זו, בכל זאת.

אני יוצר קובץ שירות עם myservice.service שֵׁם.

סודו ננו myservice.service

כעת, הוסף את השורות הבאות לקובץ.

[ יחידה ]

תיאור =השירות שלי

[ שֵׁרוּת ]

סוּג =פשוט

ExecStart = / פַּח / לַחֲבוֹט / בית / עַצמוֹ / script.sh

איתחול =על כישלון

[ להתקין ]

WantedBy =multi-user.target

ציין זאת [יחידה], [שירות], ו [להתקין] הם תלוי רישיות . קובץ השירות לא יפעל אם אחד מהם מוזכר באופן שגוי, כגון [UNIT], או [SERVICE].

שם השירות מצוין כ השירות שלי בתוך ה תיאור הוראת ה [יחידה] סָעִיף.

ה סוּג של השירות הוא פָּשׁוּט בתוך ה [שֵׁרוּת] סעיף, שהוא סוג ברירת המחדל. התפצלות , ירייה אחת , לְהוֹדִיעַ , dbus , ובטל הם חלק מהסוגים האחרים.

אם ברצונך להפוך את השירות לספציפי למשתמש, אז מִשׁתַמֵשׁ ניתן להשתמש בהנחיה גם עם שם המשתמש של המשתמש. שימוש בהנחיה זו יהפוך את הרשאת משתמש השירות לתלויה.

בזמן ש ExecStart ההנחיה מכילה את הנתיב המלא של קובץ ההפעלה. בדוגמה שלמעלה, קובץ הסקריפט myscript.sh מאוחסן ב /home/sam/ מַדרִיך. הנחיה זו למעשה מנהלת מה לבצע כאשר שירות מופעל על ידי systemd. אם הנתיב המלא של הפקודה לא צוין, היא תיפתר אוטומטית לתיקון נתיבים מוחלטים כגון /usr/local/bin , /usr/bin/, ו /פַּח . זה בסדר גמור להשתמש בשם ההפעלה כל עוד הם נמצאים בספריות הפקודות הסטנדרטיות, עם זאת, ציין את הנתיב המוחלט אחרת. שימו לב שניתן להשתמש גם בפקודות מרובות המופרדות באמצעות נקודה-פסיק (;).

ה [להתקין] הקטע הוא אופציונלי; עם זאת, הוא מציין כיצד השירות מופעל. ה WantedBy directive לוקח את קבצי היעד ברמת הריצה כפרמטרים. קבצי יעד שונים ציינו רמות ריצה שונות של המערכת כגון כיבוי , לְהַצִיל , רב משתמשים , גרפי , ו לְאַתחֵל .

ה multi-user.target פירושו שהשירות יופעל כאשר המערכת נמצאת במצב המאפשר הפעלות לא גרפיות מרובי משתמשים.

3. הפעלת השירות

כדי להפעיל את השירות, ראשית, טען מחדש את תצורות המערכת באמצעות systemctl תוֹעֶלֶת.

סודו systemctl daemon-טען מחדש

לאחר מכן, הפעל את השירות שוב באמצעות systemctl פקודה עם לְאַפשֵׁר .

סודו systemctl לְאַפשֵׁר myservice.service

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

השירות פועל בהצלחה.

כעת, בואו נקרא את קובץ הטקסט myfile.txt השירות שנוצר ב- /בית מַדרִיך.

כיצד ליצור קובץ שירות Systemd עבור משתמש רגיל

הליך יצירת קובץ השירות עבור משתמש רגיל דומה לשיטת יצירת קובץ השירות על ידי המנהל. עם זאת, הספרייה לשמירת קובץ השירות עבור משתמשים רגילים שונה. משתמשים רגילים חייבים למקם את קבצי השירות שלהם ב- ~/.config/systemd/user . ספרייה זו חייבת להיווצר באמצעות mkdir פקודה.

mkdir ~ / .config / systemd / מִשׁתַמֵשׁ

להפעלת השירות על ידי משתמש רגיל -מִשׁתַמֵשׁ הפקודה מוכנסת עם systemctl במקום סודו .

systemctl --מִשׁתַמֵשׁ דימון-טעינה מחדש

systemctl --מִשׁתַמֵשׁ לְאַפשֵׁר SERVICE-NAME.service

systemctl --מִשׁתַמֵשׁ סטטוס SERVICE-NAME.service

ה -מִשׁתַמֵשׁ האפשרות משמשת לניהול קבצי השירות המערכתית של המשתמש.

כיצד להסיר קובץ שירות

כדי להסיר את קובץ השירות, ראשית, יש להפסיק את השירות.

סודו systemctl לעצור את SERVICE-NAME.service

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

סודו rm / וכו / systemd / מערכת / SERVICE-NAME.service

עכשיו, טען מחדש את systemd תְצוּרָה.

סודו systemctl daemon-טען מחדש

סיכום

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