X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=Robots%2Fbkmk_rforking.py;h=7c6961b5b63c800ad36db1be4fbed16413e92470;hb=bb2adafe8a51fc3eed213e6c38b05f7b59b81f33;hp=da257f6cecba0d741dc6589c87d6a5fa4299d200;hpb=37885488f6f7a735fcacbeb524d9743ac62d5dbb;p=bookmarks_db.git diff --git a/Robots/bkmk_rforking.py b/Robots/bkmk_rforking.py index da257f6..7c6961b 100644 --- a/Robots/bkmk_rforking.py +++ b/Robots/bkmk_rforking.py @@ -14,9 +14,9 @@ except ImportError: import sys, os from subproc import Subprocess, RecordFile -# This is to catch 'close failed: [Errno 9] Bad file descriptor' -# message from os.close() in Subprocess.die(). -sys.stderr = open("err.log", 'w') +# This is to catch 'close failed: [Errno 9] Bad file descriptor' message +# from os.close() in Subprocess.die() and errors from from the subprocess. +sys.stderr = open("err.log", 'a') check_subp = None subp_pipe = None @@ -32,7 +32,8 @@ def restart_subp(log): global check_subp, subp_pipe stop_subp(log) - check_subp = Subprocess("%s/Robots/bkmk_rforking_sub.py" % os.path.dirname(sys.argv[0])) + check_subp = Subprocess("%s/Robots/bkmk_rforking_sub.py" % os.path.dirname(sys.argv[0]), + control_stderr=True) subp_pipe = RecordFile(check_subp) @@ -50,7 +51,7 @@ class robot_forking(Robot): bookmark.tempfname = self.tempfname subp_pipe.write_record(pickle.dumps(bookmark)) - if check_subp.waitForPendingChar(900): # wait 15 minutes + if check_subp.waitForPendingChar(300): # wait 5 minutes new_b = pickle.loads(subp_pipe.read_record()) for attr in ("error", "no_error", "moved", "size", "md5", "real_title", @@ -63,6 +64,13 @@ class robot_forking(Robot): bookmark.parent = save_parent + while True: + error = check_subp.readPendingErrLine() + if not error: + break + sys.stderr.write("(subp) " + error) + sys.stderr.flush() + except KeyboardInterrupt: return 0