У меня возникла проблема с каркасом Cement для python (с использованием python3 на данный момент). У меня есть многопроцессорное приложение, в котором работают сотрудники пула python. Конец (это ДУС не мешает с результатами) каждого multiporcessing раздела мой стандартный вывод заполняется одним или несколькими из этих исключений:Цементная рамка принимает сигнал 15 на рабочем столе пула
Traceback (most recent call last):
File "/usr/lib/python3.5/multiprocessing/util.py", line 254, in _run_finalizers
finalizer()
File "/usr/lib/python3.5/multiprocessing/util.py", line 186, in __call__
res = self._callback(*self._args, **self._kwargs)
File "/usr/lib/python3.5/multiprocessing/queues.py", line 198, in _finalize_join
thread.join()
File "/usr/lib/python3.5/threading.py", line 1054, in join
self._wait_for_tstate_lock()
File "/usr/lib/python3.5/threading.py", line 1070, in _wait_for_tstate_lock
elif lock.acquire(block, timeout):
File "/home/yogaub/.virtualenvs/seminar/lib/python3.5/site-packages/cement/core/foundation.py", line 123, in cement_signal_handler
raise exc.CaughtSignal(signum, frame)
cement.core.exc.CaughtSignal: Caught signal 15
Кто-нибудь знает, почему это происходит, и как это предотвратить?
Благодаря
редактировать: Я хотел бы добавить, что я хочу войти с лесозаготовительной нескольких процессов системы this question. Я не знаю, есть ли какая-либо корреляция.
edit2: Это создание пула процесс и завершение:
pool = Pool(processes=core_num)
pool.map(worker_unpacker.work, formatted_input)
pool.close()
t2 = time.time()
Я попытался поймать SIGTERM с системой крючками Cement, но она не работает. Единственное решение, которое я нашел на данный момент, - это фактически полностью игнорировать сигналы в конфигурации приложения для цемента (но это не действительно решение, которое мне нравится ...).
сигнал 15 является 'SIGTERM' и может произойти, если вы отправите сигнал уничтожения процессу, выполняете ли вы' terminate() 'в процессе? Можете ли вы поделиться частью программы, в которой вы настроили пул, запустить и «присоединиться» к нему? – hansaplast
@hansaplast Спасибо, да, я понял, что это сигммер. То, что я действительно не знаю, это то, кто его генерирует и почему он не улавливается цементом (даже когда я явно настраиваю крючок). – ClonedOne