def __load_install_info(self):
        """
        Method:    _load_install_info
        Description: 加载软件安装等相关的信息
        Parameter: 无
        Return: 
            0: 成功
            非0: 失败
        Others: 
        """

        

        self._install_info = InstallInfo()
        install_path = self.get_app().get_app_top_path()
        ret = self._install_info.load(os.path.join(install_path, "configure/install_info.xml"))
              
        return ret
class ProcessMonitorWorker(bf.CmdWorker):
    """
    Class: ProcessMonitorWorker
    Description: 监控进程状态的worker
    Base: CmdWorker
    Others: 
    """

    def __init__(self):
        """
        Method:    __init__
        Description: 构造函数
        Parameter: 无
        Return: 
        Others: 
        """

        bf.CmdWorker.__init__(self
                            , name = "ProcessMonitorWorker"
                            , min_task_id=1
                            , max_task_id=2000)

        # 从配置文件中读取的信息
        self._install_info = None
        
    def ready_for_work(self):
        """
        Method:    ready_for_work
        Description: worker初始化工作
        Parameter: 无
        Return: 
            0: 成功
            非0: 失败
        Others: 
        """

        ret = self.__load_app_info()
        if ret != 0:
            return ret
        
        handler = CheckProcessStatTimeHandler()
        handler.start_timer(1, False)
        self.register_time_out_handler(handler)

        handler = SendRunningPidTimeHandler()
        handler.start_timer(5, False)
        self.register_time_out_handler(handler)

        self.register_handler(ShakehandHandler(), bf.CMD_SHAKEHAND_WITH_MONITOR)
        self.register_handler(RestartACPSystemHandler(), plt_cmd_code_def.CMD_RESTART_ACP_SYSTEM)
        
        return 0

    def __load_install_info(self):
        """
        Method:    _load_install_info
        Description: 加载软件安装等相关的信息
        Parameter: 无
        Return: 
            0: 成功
            非0: 失败
        Others: 
        """

        

        self._install_info = InstallInfo()
        install_path = self.get_app().get_app_top_path()
        ret = self._install_info.load(os.path.join(install_path, "configure/install_info.xml"))
              
        return ret


    def __load_app_info(self):
        # 初始化进程的启动信息
        ret = self.__load_install_info()        
        if ret != 0:
            tracelog.error("_load_install_info() failed.")
            return ret 
        
        all_app_info = self._install_info.get_app_info()        
        for app in all_app_info:
            if app.get_service_name() == self.get_app().get_service_name():
                continue

            # 根据配置文件中的相对位置,获取绝对位置
            program_path = os.path.join(self.get_app().get_app_top_path()
                                        , app.get_program_path())
            
            for i in xrange(app.get_instance_num()):
                ProcessStatMgr.add_process('%s_%s'%(app.get_service_name(), i)
                                        , i
                                        , app.is_auto_run_on_master()
                                        , app.is_auto_run_on_slave()
                                        , app.is_exclude()
                                        , program_path)
        return 0