דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. איך להפסיק sub process בתוך קונטיינר ב-docker בצורה נכונה?

איך להפסיק sub process בתוך קונטיינר ב-docker בצורה נכונה?

מתוזמן נעוץ נעול הועבר תכנות
5 פוסטים 2 כותבים 497 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • P מנותק
    P מנותק
    ps
    כתב ב נערך לאחרונה על ידי
    #1

    שלום
    בחברה אצלנו משתמשים ב-docker שנמצא על מחשב יוניקס (יובונטו)
    באחד הקונטיינרים יש מערכת לתיזמון משימות (task scheduler), שנקרא Cronicle. (לקוח מהקוד הפתוח https://github.com/jhuckaby/Cronicle)
    בגדול זה עובד בסדר, רק שנתקלתי בבעיה אחת - שאם אני רוצה להפסיק task באמצע הריצה שלו, ולוחצת על abort, הוא אמנם נעלם מהרשימה של המשימות שכרגע רצות. אבל אם אני מריצה פקודה לראות איזה פרוססים רצים בקונטיינר, הוא עדיין קיים ולא הפסיק.
    יש רעיון איך נכון לטפל בבעיה הזאת?
    כנראה שהסיגנל שנשלח הוא לא הנכון כדי להפסיק את הפרוסס (מדובר על JAR שרץ ע"י ג'אווה).
    איזה סינגל נכון לשלוח כדי להפסיק אותו?
    האם כדאי לשנות את הקוד של Cronicle אצלנו?
    או אולי פיתרון כזה (שלא ממש הבנתי): https://www.shellscript.sh/trap.html
    תודה מראש

    תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי dovid
      #2

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

      אני גם ממלית לך לפתוח issues פה: https://github.com/jhuckaby/Cronicle/issues
      אם לא יועיל לא יזיק ולדעתי יועיל כי זה נראה פרוייקט עם פעילות.

      תכתבו קודם את השאלה בתמצות ממש: לחיצה על abort (אם זה גם בממשק התכנותי אז פקודת abort_job), לא סוגרת את התהליך (והוא ממשיך לרוץ או מושהה? בדקו זאת ע"י ps aux בעמודה stat).
      אחרי זה תתכתבו את הרקע: 1. רץ על docker, 2 שרץ באובנטו. התהליך הוא יישום JAVA.

      מדי דברי אני רואה שלא בטוח שהם תומכים בכלל בdocker שכן יש להם issues פתוח על זה: Add docker support #4

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      P תגובה 1 תגובה אחרונה
      1
      • P מנותק
        P מנותק
        ps
        השיב לdovid ב נערך לאחרונה על ידי
        #3

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

        תגובה 1 תגובה אחרונה
        2
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          כתב ב נערך לאחרונה על ידי
          #4

          אם את יכולה להיכנס לקוד, אדרבא תדביקי פה ונבחן אותו.
          הsignal הוא 9 (SIGKILL) ולא נראה לי שזה הטעות שלהם.

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          1
          • P מנותק
            P מנותק
            ps
            כתב ב נערך לאחרונה על ידי
            #5

            אוקיי מצאתי פיתרון פשוט וקל, רושמת פה למקרה שיעזור למישהו
            ה-cronicle לא הריץ את ה-jar ישירות, אלא היה לי shell שהריץ אותו
            ה-abort עצר את ה-shell אבל ה-shell לא עצר את הג'אווה.
            כדי לגרום לג'אווה למות כאשר הshell מת, צריך להריץ את הג'אווה בתוספת הפקודה exec
            לדוגמא: exec java -jar MyProgram.jar
            ואז לא נוצר לג'אווה פרוסס משל עצמו, אלא החיים שלו נכנסים לתוך החיים של הshell
            קרדיט ל:
            http://perfspy.blogspot.com/2015/02/trap-killing-signals-inside-docker.html

            תגובה 1 תגובה אחרונה
            3

            בא תתחבר לדף היומי!
            • התחברות

            • אין לך חשבון עדיין? הרשמה

            • התחברו או הירשמו כדי לחפש.
            • פוסט ראשון
              פוסט אחרון
            0
            • דף הבית
            • קטגוריות
            • פוסטים אחרונים
            • משתמשים
            • חיפוש
            • חוקי הפורום