| A server spawning processesclass FakeTelnet(protocol.Protocol): dirToRunIn = os.getcwd() def connectionMade(self): print 'connection made' self.pp = ProcessProtocol(self) cmd = self.factory.cmd_list reactor.spawnProcess(self.pp, cmd[0], cmd, os.environ, self.dirToRunIn, usePTY=True) def dataReceived(self, data): self.pp.transport.write(data) def connectionLost(self, reason=None): print 'connection lost' self.pp.transport.loseConnection() class ProcessProtocol(protocol.ProcessProtocol): def __init__(self, telnet): self.telnet = telnet def outReceived(self, data): self.telnet.transport.write(data) def errReceived(self, data): self.telnet.transport.write("! " + data) def processEnded(self, status): print 'protocol connection lost' self.telnet.transport.loseConnection() |