code: def _main(self):
          
          probes = self.config.get('probes', None)
          if not probes:
              raise ValueError('no probes specified')
  
          for probe_config in self.config['probes']:
              probe = plugin.get_probe(probe_config, self.plugin_context)
              # FIXME - needs to check for output defined in plugin
              if 'output' not in probe_config:
                  raise ValueError("no output specified")
  
              # get all output targets and start / join them
              for output_name in probe_config['output']:
                  output = plugin.get_output(output_name, self.plugin_context)
                  if not output.started:
                      output.start()
                      self.joins.append(output)
                  probe._emit.append(output)
  
              probe.start()
              self.joins.append(probe)
  
          vaping.io.joinall(self.joins)
          return 0
docs: process