def makeService(self, options):
        actor = options['actor']
        if not actor:
            fatal("error: no actor specified")
            sys.exit(1)

        try:
            module_path, actor_cls_name = actor.rsplit('.', 1)
        except ValueError:
            fatal("error: invalid path to actor %s" % actor)
            sys.exit(1)

        try:
            mod = __import__(module_path, globals(), locals(), [actor_cls_name], -1)
        except ImportError:
            fatal((actor, traceback.format_exc()) % "error: could not import %s:\n%s")
            sys.exit(1)

        try:
            actor_cls = getattr(mod, actor_cls_name)
        except AttributeError:
            fatal("error: no such actor %s" % actor)
            sys.exit(1)

        kwargs = {}

        if options['params'] is not _EMPTY:
            params = 'dict(%s)' % (options['params'],)
            try:
                params = eval(params)
            except:
                fatal("error: could not parse parameters")
                sys.exit(1)
            else:
                kwargs['init_params'] = params

        if options['message'] is not _EMPTY:
            initial_message = options['message']
            try:
                initial_message = eval(initial_message)
            except:
                fatal("error: could not parse initial message")
                sys.exit(1)
            else:
                kwargs['initial_message'] = initial_message

        if options['name']:
            name = options['name']
            if '/' in name:
                fatal("invalid name: names cannot contain slashes")
                sys.exit(1)
            else:
                kwargs['name'] = name

        if options['remoting']:
            nodeid = options['remoting']
            try:
                _validate_nodeid(nodeid)
            except TypeError:
                fatal("invalid node ID")
                sys.exit(1)
            else:
                kwargs['nodeid'] = nodeid

        kwargs['keep_running'] = options['keeprunning']

        m = MultiService()
        actor_runner = ActorRunner(actor_cls, **kwargs)
        actor_runner.setServiceParent(m)

        # manhole

        if options['remotedebugging']:
            port = options['remotedebuggingport']
            try:
                port = int(port)
            except ValueError:
                fatal("Invalid port specified: %r" % port)
                sys.exit(1)

            username = options['remotedebuggingusername']
            password = options['remotedebuggingpassword']

            manhole = self.make_manhole_server(port, username, password)
            manhole.setServiceParent(m)

        return m
dataset/ETHPy150Open eallik/spinoff/twisted/plugins/startnode.py/ActorRunnerMaker.makeService/swapped operands of `%`