def bootnodeservice(self, node, s, services, useStartupService):
        ''' Start a service on a node. Create private dirs, generate config
            files, and execute startup commands.
        '''
        if s._custom:
            self.bootnodecustomservice(node, s, services, useStartupService)
            return
        if node.verbose:
            node.info((s._name, s._startindex) % "starting service %s (%s)")
        for d in s._dirs:
            try:
                node.privatedir(d)
            except Exception,  e:
                node.warn("Error making node %s dir %s: %s" % \
                          (node.name,  d,  e))
        for filename in s.getconfigfilenames(node.objid, services): 
            cfg = s.generateconfig(node,  filename, services)
            node.nodefile(filename,  cfg)
        if useStartupService and not self.isStartupService(s):
            return
        for cmd in s.getstartup(node, services):
            try:
                # NOTE: this wait=False can be problematic!
                node.cmd(shlex.split(cmd),  wait = False)
            except Exception, e:
                node.warn("error starting command %s: %s" % (cmd, e))
dataset/ETHPy150Open coreemu/core/daemon/core/service.py/CoreServices.bootnodeservice/swapped operands of `%`