import sys

from twisted.python import log

log.startLogging(sys.stdout)

from twisted.internet import protocol, reactor

class SubProcessProtocol(protocol.ProcessProtocol):

    def connectionMade(self):

        log.msg('Connection Made.')

    def outReceived(self, data):

        log.msg('Received:', data)

#        reactor.callLater(.1, self.send)

        print data

    def errReceived(self, data):

        log.msg('Error:', data)

    def inConnectionLost(self):

        log.msg('Error: inConnectionLost')

    def outConnectionLost(self):

        log.msg('Error: inConnectionLost')

    def errConnectionLost(self):

        log.msg('Error: errConnectionLost')

    def processExited(self, reason):

        log.msg('Process exit status:',reason.value.exitCode )

    def processEnded(self, reason):

        log.msg('Process end status:',reason.value.exitCode )

        if reactor.running:

            reactor.stop()

def main():

    p = SubProcessProtocol()

    reactor.spawnProcess(p, 'tail', ['tail','-f','/usr/local/nginx/logs/access.log'], {})

    reactor.run()

main()

posted on 2016-08-08 15:52  wolover  阅读(585)  评论(0编辑  收藏  举报