作为@tony suggested,您可以在使用multiprocessing模块创建的子进程上设置daemon=True标志。要在python2.4上安装它,请键入:pip install multiprocessing。在
如果主进程被信号终止,则子进程不会终止,因此需要提供适当的信号处理程序:#!/usr/bin/env python
import logging, signal, sys, time
import multiprocessing as mp # `pip install multiprocessing` on Python <2.6
class AddProcessNameFilter(logging.Filter):
"""Add missing on Python 2.4 `record.processName` attribute."""
def filter(self, r):
r.processName = getattr(r, 'processName', mp.current_process().name)
return logging.Filter.filter(self, r)
def print_dot():
while True:
mp.get_logger().info(".")
time.sleep(1)
def main():
logger = mp.log_to_stderr()
logger.setLevel(logging.INFO)
logger.addFilter(AddProcessNameFilter()) # fix