Некоторое время назад я был очень смущен некоторыми изменениями, которые я обнаружил при переносе скриптов Python из Linux в OS X ...
В Linux, если скрипт Python вызвал os.system() и вызывающий процесс уничтожен, вызываемый процесс будет уничтожен одновременно.
На OS X, однако, если основной процесс убит, все, что он запустил, остается позади.
Есть ли что-то в OS X/Python, где я могу изменить это поведение?
Это вызывает проблемы на нашей ферме рендеринга, где процессы могут быть убиты из графического интерфейса управления, но процесс верхнего уровня на самом деле является просто оболочкой, поэтому, хотя управление фермой рендеринга может подумать, что процесс завершился и машина освобождена для другой задачи, фактическая нагрузка на процессор все еще выполняется, что может привести к огромным блокировкам.
Я знаю, что мог бы написать больше логики, чтобы перехватить сигнал уничтожения и передать его дочерним процессам, но я надеялся, что это может быть что-то, что может быть включено на более низком уровне.