Created
March 8, 2014 00:07
-
-
Save coder46/9422887 to your computer and use it in GitHub Desktop.
process.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# Copyright (c) Twisted Matrix Laboratories. | |
# See LICENSE for details. | |
from twisted.internet import protocol | |
from twisted.internet import reactor | |
import re | |
class MyPP(protocol.ProcessProtocol): | |
def __init__(self, verses): | |
self.verses = verses | |
self.data = "" | |
def connectionMade(self): | |
print "connectionMade!" | |
''' | |
for i in range(self.verses): | |
self.transport.write("Aleph-null bottles of beer on the wall,\n" + | |
"Aleph-null bottles of beer,\n" + | |
"Take one down and pass it around,\n" + | |
"Aleph-null bottles of beer on the wall.\n") | |
self.transport.closeStdin() # tell them we're done | |
''' | |
#pass | |
def outReceived(self, data): | |
print "outReceived! with %d bytes!" % len(data) | |
print data | |
self.data = self.data + data | |
self.transport.write("SAME TO YOU") | |
self.transport.closeStdin() # tell them we're done | |
def errReceived(self, data): | |
print "errReceived! with %d bytes!" % len(data) | |
def inConnectionLost(self): | |
print "inConnectionLost! stdin is closed! (we probably did it)" | |
def outConnectionLost(self): | |
print "outConnectionLost! The child closed their stdout!" | |
# now is the time to examine what they wrote | |
#print "I saw them write:", self.data | |
#(dummy, lines, words, chars, file) = re.split(r'\s+', self.data) | |
#print "I saw %s lines" % lines | |
def errConnectionLost(self): | |
print "errConnectionLost! The child closed their stderr." | |
def processExited(self, reason): | |
print "processExited, status %d" % (reason.value.exitCode,) | |
def processEnded(self, reason): | |
print "processEnded, status %d" % (reason.value.exitCode,) | |
print "quitting" | |
#reactor.stop() | |
pp = MyPP(10) | |
reactor.spawnProcess(pp, "python", ["python", "hello.py"], {}) | |
reactor.run() | |
#pp.transport.write("HELLO WORLD") | |
#pp.transport.closeStdin() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment