04/05/2024

מדריך לינוקס למתחילים בעברית חלק 5 - ניהול שירותים (Services) בלינוקס

 

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

מה נלמד היום?

1) הסבר -  מה זה systemd בקצרה?
2) לראות את כל השירותים (Services) שיש במערכת לינוקס?
3) איך לראות את כל השירותים (Serivces) הפעילים במערכת לינוקס?
4) איך לראות את כל השירותים (Services) המבוטלים (Disabled)  במערכת לינוקס?
5) איך לראות את כל השירותים (Services) שלא עלו במערכת ההפעלה?
6) איך להפעיל שירות (Service) בלינוקס?
7) איך לעצור שירות (Service) בלינוקס?
8) איך לבצע "טעינה" מחדש (לא הפעלה מחדש) של שירות (Service)?
9) איך לבדוק מצב של שירות (Service) ספציפי בלינוקס?
10) איך לעשות הפעלה מחדש לשירות (Service) בלינוקס?
11) איך לגרום לשירות (Service) להעלות אוט' לאחר הפעלה מחדש של מערכת?
12) איך לבטל עליה אוט' של שירות (Service) לאחר הפעלה מחדש של מערכת בלינוקס?
13) איך לבצע "טעינה" מחדש (לא הפעלה מחדש) של שירות (Service)?
14) איך לבצע חיפוש של שירות (Service) מסוים?
15) איך לבדוק לוגים של שירותים?
16) איך לצפות בלוג בזמן אמת?

1. מה זה systemd?
בגלל שאנחנו לא הולכים להיות כאן מנהלי רשתות, בחרתי לנכון לתת לכם רק את ה"תכלס" של המידע בנושא הזה, אם תרצו לקרוא יותר, אפשר לקרוא בגוגל.
בגדול, systemd -  הוא "מנהל הסרוויסים" במערכת לינוקס, האחראי על ניהול הסרוויסים בלינוקס.
בכל פעם שנפעיל, נאפשר או נבטל סרוויס, מאחורי הקלעים אנחנו נרשום פקודה והוא זה שיבצע את זה - ושוב זה רק על קצה המזלג, יש שתי פקודות ששייכול ל systemd, הפקודה הראשונה שמתפעלת את הסרוויסים במערכת שהיא systemctl, והשניה שהיא אחראית על לוגים היא journalctl.

2. איך להציג את כל השירותים (Service) שיש במערכת לינוקס?
לצורך הצגת כלל השירותים שיש במערכת, נשתמש בפקודה:  systemctl --type=service
לצורך יציאה מהחלון של השירותים נלחץ על "Q" במקלדת.
אין צורך ב sudo, שימו לב הרשימה מאוד ארוכה:



3.איך לראות את כל השירותים (Services) שפעילים בלינוקס?
לצורך הצגת כלל השירותים הפעילים נשתמש בפקודה: systemctl list-units --type=service --state=running
הפירוש של הפקודה ברור, פרט ל-unit, כשאר במקרה הזה "unit" הוא שירות.

(תשימו לב למשהו מעניין, למטה, כתוב שנטענו 35 units, מערכת הפעלה עם 35 שירותים רצים.. זה אחלה דבר)



לצורך השוואה, הרצתי ספירה של שירותים שיש לי במערכת ווינדוס כרגע.. מצב שונה לגמרי 144 שירותים:



4. איך לראות את כל השירותים(Services) המובטלים בלינוקס?
לצורך הצגת שירותים לא פעילים בלינוקס, נשתמש בפקודה : systemctl list-unit-files --state=disabled
נקבל מידע מאוד מפורט ומאוד ברור לגבי נושא השירותים:



5. איך לראות את כל השירותים(Services) שלא הצליחו להעלות בתהליך ה Boot בלינוקס?
לצורך הצגת שירותים שלא צלחו עם עלית המחשב,
 נשתמש בפקודה:  systemctl list-units --type=service --state=failed,exited



6.איך להפעיל שירות (Service) מסוים בלינוקס?
לצורך הפעלה של סרוויס נריץ את הפקודה :  systemctl start service_name
מאחר ואנחנו נמצאים במערכת מאוד מגניבה, עצרתי את השירות של ממשק המשתמש לצורך ההדגמה ואני הולך להפעיל אותו עכשיו, מאחר ואנחנו מתכוונים לבצע מוניפולציה למערכת ההפעלה, אז נצטרך להקיש סיסמא של המשתמש שלנו, לאחר מכן כמובן נקבל את ה"שם המלא" של הסרוויס שאותו אנו מתכוונים להפעיל, ולאחר מכן נלחץ ENTER.
והמערכת תפעיל את השירות.


7.איך לעצור שירות (Service) מסוים בלינוקס?
ההפך מהפקודה הקודמת, במקרה הזה נשתמש ב "systemctl stop gdm3 - "stop
כמו בפעם הקודמת, נצטרך להקיש את הסיסמא והמערכת תעצור את השירות:


8.איך לבצע "טעינה" מחדש (לא הפעלה מחדש) של שירות(Service) בלינוקס?
במידה ונרצה לבצע "טעינה מחדש" לשירות מסוים (בדרך כלל מיועד לקבצי קונפיגורציה או לשינויים שביצעתם) נשתמש בפקודה :  systemctl reload service_name
מה שקורה בפועל, במקרה הזה המערכת לא עושה "כיבוי והפעלה מחדש" לשירות, אלה עושה לו סוג של "ריפרש" מה שחוסך זמן רב לפעמים:



9. איך לבצע "הפעלה מחדש" לשירות(Service) מסוים בלינוקס?

במידה ונרצה לבצע "הפעלה מחדש" לשירות מסוים (בדרך כלל מיועד לקבצי קונפיגורציה או לשינויים שביצעתם) נשתמש בפקודה :  systemctl restart service_name
בפועל מערכת ההפעלה "מכבה" את השירות ומפעילה אותו שוב פעם.


10. איך לבדוק מצב (Status) של שירות (Service) מסוים בלינוקס?
במידה ונרצה לראות מצב של שירות מסוים, נקיש את הפקודה: systemctl status gdm3
ונקבל תוצאה על כך שהשירות Inactive במקרה הזה (כי עצרתי אותו בפקודה הקודמת),
כמו כן נקבל עוד מידע לידע כללי, כמו גם לוג קטן למטה.


11.איך להגדיר  שירות (Service) מסוים למצב שיעלה אוט' ?
אני לא מתכוון כאן למצב שבו אתם עושים לשירות מסוים "start", אלה למצב שבו אתם עושים לשירות "Enable" שיעלה עם עליית המחשב, זאת אומרת לשנות לו את מה שמוכר בווינדוס בתור "Startup type":



אז במקרה הזה אנחנו נגדיר את השירות שלנו (Service) שיעלה אוט'
עם הפקודה הזאת:sudo systemsctl enable service_name 

וקיבלנו הודעה על כל מה שהמערכת עושה בשביל להפעיל את השירות(Service) שאנחנו רוצים:



12.איך לבטל עליה אוט' של שירות(Service) בלינוקס?
לצורך כך נשתמש באותה הפקודה רק שנשנה את הפרמטר enable ל sudo systemctl disable service_name : disable


13.איך להציג מצב מסוים של שירות (Services) בלינוקס?
נגיד ואני רוצה לבדוק מצב של שירות מסוים, הרי אם יש לי המון שירותים זה יקח שעות לדפדף בין כל השירותים שיש במערכת, בדיוק למקרה הזה יש פקודה שנקרא grep שניתן להשתמש בה בכל מיני דרכים (יהיה מדריך נפרד על הפקודה הזאת כי היא מאוד חשובה בעבודה עם לינוקס), במקרה הזה אנחנו נשתמש בה דרך "הצינור" - Pipeline, כמו שיש ב  PowerShell (למי שמכיר, אם אתם לא מכירים, עברו למדריך שלי אודות PowerShell דחוף ! כאן), בעיקרון הפייפליין מיוצגת במקלדת על ידי הסימן הזה "|" בשביל "לכתוב" אותה נלחץ על \+Shift ונקבל את - "|"
הפייפליין מדגמן !

ובעצם הפקודה תיראה כך: systemctl --type=service --state=running |grep servicename

לצורך דוגמא אני אבצע חיפוש של כמה שירותים (Services) בלינוקס שלי:



14. איך לבדוק לוגים של שירותים בלינוקס?
בדיקה של לוגים מתבצעת עם הפקודה journalctl בשביל לבדוק לוג מסויים של שירות(Service) נשתמש בפקודה עם  - פרמטר u- שאומר "Units" (כמו שראינו כבר בשימוש באחת הפקודות שלsystemctl).
יחסית הפקודה מאוד פשוטה לשימוש נרשום journalctl -u service_name
אני אבדוק לוג של SSH לדוגמא:


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

ניתן לבצע חיפוש בתוך הלוג על ידי לחיצה על כפתור ה"סלאש" - / ופשוט להתחיל לכתוב את מה שרוצים לחפש, לאחר מכן נלחץ Enter.


אני במקרה אבצע חיפוש של השם משתמש lev:


בשביל לצאת מהממשק הזה, נלחץ במקלדת על Q.

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


אנחנו נבצע את זה עם הפקודה journalctl -u service_name רק שנוסיף בסוף גם את הפרמטר f-, כמובן שצריך להתחבר פעמיים במקרה של SSH בשביל לראות שזה עובד ולהשאיר את החלון עם הלוג פתוח, הפקודה: journalctl -u ssh -f



בחלק הזה למדנו לעבוד עם שירותים (Services) בלינוקס.

כמו תמיד לכל שאלה ניתן לשלוח מייל ל: levl@leidertech.co.il


כמו תמיד, להלן מדריך מצולם:

תגובה 1:

  1. לצורך יציאה מהחלון של השירותים נלחץ על "Q" במקלדת.
    נלחץ על "CTRL" + C

    השבמחק

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

תודה :)