def launch(self, tunnelPorts=None):
        """Launch every worker assigned on this host."""
        if self.isLocal():
            # Launching local workers
            c = self._getWorkerCommandList()
            self.subprocesses.append(subprocess.Popen(c))
        else:
            # Launching remotely
            BASE_SSH[0] = self.ssh_executable
            sshCmd = BASE_SSH if not self.rsh else BASE_RSH
            if tunnelPorts is not None:
                sshCmd += [
                    '-R {0}:127.0.0.1:{0}'.format(tunnelPorts[0]),
                    '-R {0}:127.0.0.1:{0}'.format(tunnelPorts[1]),
                ]
            self.subprocesses.append(
                subprocess.Popen(sshCmd + [self.hostname, self.getCommand()],
                                 bufsize=-1,
                                 stdout=None,
                                 stderr=None,
                                 stdin=subprocess.PIPE
                )
            )

        return self.subprocesses
Launch every worker assigned on this host.