[Twisted-Python] [newb] another process question
Neal Becker
ndbecker2 at gmail.com
Fri Nov 5 17:28:24 MDT 2010
Using this code:
...
def processEnded(self, reason):
print "processEnded, task %s, status %s" % (self.task,
reason.value.exitCode,)
Here is what I get from a normally terminated process
processEnded, task ['sleep', '4']31662, status 0
But now I kill the subprocess, with SIGTERM, and I get:
processEnded, task ['sleep', '15']31663, status None
This seems to disagree with the twisted process doc.
Instead of an exitCode, I seem to have gotten 'None'
.processEnded(status): This is called when the child process has been
reaped, and receives information about the process' exit status. The status
is passed in the form of a Failure instance, created with a .value that
either holds a ProcessDone object if the process terminated normally (it
died of natural causes instead of receiving a signal, and if the exit code
was 0), or a ProcessTerminated object (with an .exitCode attribute) if
something went wrong. This scheme may seem a bit weird, but I trust that it
proves useful when dealing with exceptions that occur in asynchronous code.
More information about the Twisted-Python
mailing list