Supervisor: Mengirim SIGKILL ke supervisor tidak menghentikan anak-anak

Dibuat pada 21 Nov 2012  ·  5Komentar  ·  Sumber: Supervisor/supervisor

Di Linux yang menjalankan supervisor 3.0b1, mengirimkan SIGKILL ke proses supervisord tidak menghentikan semua proses turunannya, yaitu proses yang dimulai melalui file konfigurasi.

Komentar yang paling membantu

FWIW, jika supervisor adalah pid 19285:

  kill -9 -19285

Meniadakan pid mengirimkan sinyal mematikan ke seluruh grup proses.

Semua 5 komentar

SIGKILL tidak bisa dijebak. Ini menunjukkannya:

$ 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')
>>>

Tidak ada yang bisa kita tambahkan atau ubah dalam kode kita untuk mengubahnya.

Tentu saja, tetapi mengapa membunuh proses induk tidak membunuh proses anak? Maksud saya di tingkat Linux, bukan melalui penyelia yang mencegat SIGKILL dan membunuh anak-anaknya.

FWIW, jika supervisor adalah pid 19285:

  kill -9 -19285

Meniadakan pid mengirimkan sinyal mematikan ke seluruh grup proses.

Saya mencoba untuk mencapai hal yang sama. Mengirim SIGTERM alih-alih SIGKILL berhasil untuk saya.
Saya lebih suka "SIGTERM" daripada "SIGKILL dengan ID proses yang dinegasikan" karena memungkinkan shutdown yang anggun.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat