Supervisor: لا يؤدي إرسال SIGKILL إلى المشرف إلى إنهاء الأطفال

تم إنشاؤها على ٢١ نوفمبر ٢٠١٢  ·  5تعليقات  ·  مصدر: Supervisor/supervisor

في Linux الذي يقوم بتشغيل المشرف 3.0b1 ، لا يؤدي إرسال SIGKILL إلى عملية المشرف إلى إنهاء جميع العمليات الفرعية ، أي العمليات التي بدأت من خلال ملف التكوين.

التعليق الأكثر فائدة

FWIW ، إذا كان المشرف هو رقم التعريف الشخصي 19285:

  kill -9 -19285

يؤدي رفض رقم التعريف الشخصي إلى إرسال إشارة القتل إلى مجموعة العملية بأكملها.

ال 5 كومينتر

SIGKILL لا يمكن أن يكون محاصرا. هذا يوضح ذلك:

$ python
>>> import signal
>>> def handler(signum, frame):
...   pass
... 
>>> signal.signal(signal.SIGKILL, handler)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RuntimeError: (22, 'Invalid argument')
>>>

لا يوجد شيء يمكننا إضافته أو تغييره في التعليمات البرمجية لتغيير ذلك.

بالتأكيد ، لكن لماذا قتل الأبوين لا يقتل الأبناء؟ أعني على مستوى Linux ، وليس من خلال اعتراض المشرف على SIGKILL وقتل أطفالها.

FWIW ، إذا كان المشرف هو رقم التعريف الشخصي 19285:

  kill -9 -19285

يؤدي رفض رقم التعريف الشخصي إلى إرسال إشارة القتل إلى مجموعة العملية بأكملها.

كنت أحاول تحقيق نفس الشيء. عمل SIGTERM بدلاً من SIGKILL بالنسبة لي.
أفضل "SIGTERM" على "SIGKILL مع معرّف العملية المنفي" لأنه يسمح بإيقاف التشغيل بشكل رشيق.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

ido50 picture ido50  ·  95تعليقات

mkotsalainen picture mkotsalainen  ·  28تعليقات

ramary picture ramary  ·  33تعليقات

jbrehm picture jbrehm  ·  64تعليقات

cclauss picture cclauss  ·  62تعليقات