code: def run(self, conn, tmp, module_name, module_args, inject):
          ''' transfer the given module name, plus the async module, then run it '''
  
          # shell and command module are the same
          if module_name == 'shell':
              module_name = 'command'
              module_args += " #USE_SHELL"
  
          (module_path, is_new_style, shebang) = self.runner._copy_module(conn, tmp, module_name, module_args, inject)
          self.runner._low_level_exec_command(conn, "chmod a+rx %s" % module_path, tmp)
  
          return self.runner._execute_module(conn, tmp, 'async_wrapper', module_args,
             async_module=module_path,
             async_jid=self.runner.generated_jid,
             async_limit=self.runner.background,
             inject=inject
          f run(self, conn, tmp, module_name, module_args, inject):
          ''' transfer the given module name, plus the async module, then run it '''
  
          # shell and command module are the same
          if module_name == 'shell':
              module_name = 'command'
              module_args += " #USE_SHELL"
  
          (module_path, is_new_style, shebang) = self.runner._copy_module(conn, tmp, module_name, module_args, inject)
          self.runner._low_level_exec_command(conn, "chmod a+rx %s" % module_path, tmp)
  
          return self.runner._execute_module(conn, tmp, 'async_wrapper', module_args,
             async_module=module_path,
             async_jid=self.runner.generated_jid,
             async_limit=self.runner.background,
             inject=inject
          )
docs: transfer the given module name, plus the async module, then run it