בקרת ג'ובים בלינוקס

בקרת ג'ובים פירושה היכולת לעצור (stop), להקפיא (suspend) ולחדש ריצה של תהליכים.

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

$ sleep 10 &
[1] 17029
$

הסבר: המספר 1 (מוקף בסוגריים מרובעים) זה מס' ה- Job (נקרא JID או Job ID) ו- 17029 זה מספר התהליך (PID או Process ID).

הצגת טבלת הג'ובים שרשומה במערכת:

$ jobs
[1]+ Running sleep 10 &

 

איך עוצרים תהליך (זמנית)?

שתי אפשרויות:

  • הקשה במקלדת על צירוף המקשים Ctl+Z
  • הקשת הפקודה: kill -s stop PID

איך מחדשים עבודת תהליך?
גם כאן שתי אפשרויות:

  • הקשת הפקודה: fg %JID תחזיר את ריצת התהליך "קדימה" (forground), כלומר התהליך יחדש את ריצתו (הפקודה לא תחזיר prompt כי הפקודה רצה "קדימה" וה- shell g עדיין ממתין לסיום הריצה שלה)
  • הקשת הפקודה: bg %JID תחדש את ריצת התהליך אך הוא ירוץ ברקע (background)

איך "הורגים" תהליך (לא ניתן בעתיד לחדש את עבודתו)?

kill PID

הערה: אם נריץ תהליך ולאחר מכן נצא מה – shell הוא יפסיק את עבודתו (יהרג). הסיבה לכך היא שה- shell הנוכחי הוא האבא של תהליך הבן ותהליך לא יכול לרוץ ללא אבא

כדי למנוע מצב זה יש שלוש אפשרויות:

  • להריץ את הפקודה תחת tmux\screen ומקביליו
  • להריץ את הפקודה disown
  • להשתמש בפקודה nohup

הפקודה disown:

$ sleep 10 &
[1] 17029
$ disown
$ exit

 

הפקודה nohup (התכנית הבאה לא תיעצר גם כשנצא מה- shell):

$ ssh user@server
$ nohup sleep 1000 &
$ exit

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *