X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=subproc.py;h=57a95682803fcd83bd00d554c8d55784af3cef15;hb=3e29cb1a49f602f4a647c18ae64f0516a76de236;hp=d16ecc6064de3dbb28b610e51d6e14816c57767a;hpb=953a1db81fd336fcb4c0702bc53d3e06958f3b64;p=bookmarks_db.git diff --git a/subproc.py b/subproc.py old mode 100644 new mode 100755 index d16ecc6..57a9568 --- a/subproc.py +++ b/subproc.py @@ -1,3 +1,5 @@ +#! /usr/bin/env python + """Run a subprocess and communicate with it via stdin, stdout, and stderr. Requires that platform supports, eg, posix-style 'os.pipe' and 'os.fork' @@ -141,7 +143,9 @@ class Subprocess: except os.error as error: errno, msg = error if errno == 10: + self.pid = None raise SubprocessError("Subprocess '%s' failed." % self.cmd) + self.pid = None raise SubprocessError("Subprocess failed[%d]: %s" % (errno, msg)) if pid == self.pid: # child exited already @@ -153,6 +157,7 @@ class Subprocess: "child killed by signal %d with a return code of %d" % (sig, rc)) if rc: + self.pid = None raise SubprocessError( "child exited with return code %d" % rc) # Child may have exited, but not in error, so we won't say @@ -686,3 +691,6 @@ def test(p=0): del p print("\tDone.") return None + +if __name__ == '__main__': + test()