code: public void start() throws Exception {
          if(log.isInfoEnabled()) {
              log.info("Starting Zabbix agent.");
          }
  
          if(enablePassive) {
          	if(log.isInfoEnabled()) {
          		log.info("Starting passive listener.");
          	}
  
  	        if(listenAddress == null) {
  	            listenerThread = new ListenerThread(metricsContainer, listenPort);
  	        } else {
  	            listenerThread = new ListenerThread(metricsContainer, listenAddress, listenPort);
  	        }
  	        listenerThread.start();
  
  	        if(log.isInfoEnabled()) {
  	        	log.info("Passive listener started.");
  	        }
          }
  
          if(enableActive) {
          	if(log.isInfoEnabled()) {
          		log.info("Starting active agent with {}", serverAddress);
          	}
  
          	InetAddress addr = InetAddress.getByName(serverAddress); // make sure it can be resolved
  
          	activeThread = new ActiveThread(metricsContainer, hostName, serverAddress, serverPort, refreshInterval, pskIdentity, psk);
          	activeThread.start();
  
          	if(log.isInfoEnabled()) {
          		log.info("Active agent started with {}", addr);
          	}
          }
  
          if(log.isInfoEnabled()) {
              log.info("Zabbix agent started.");
          }
      }
docs: Start processing requests. Starts the passive listener (if enabled) and the
  active agent (if enabled).
  @throws Exception when a problem occurs starting the agent.