def _check_living(self, pid, option=None): """ 进程活着就返回,否则尝试从config中remove :param pid: :param option: :return: """ if ProcessHelper.is_living(pid): return True try_cnt = g_try_cnt while True: self.cf.read(K_CMD_PNAME) options = self.cf.options(K_CMD_PCMD) if option is None: option = K_CMD_PCMD_ADD_HEAD + str(pid) if options.count(option) == 0: break if try_cnt <> g_try_cnt: ''' 除来第一次之外都sleep一下 ''' time.sleep(1) self.cf.remove_option(K_CMD_PCMD, option) with open(K_CMD_PNAME, 'w') as f: self.cf.write(f) try_cnt -= 1 if try_cnt == 0: self.__print_proxy('check_living failed pid: ' + str(pid)) break return False