X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=Robots%2Fbkmk_rforking.py;h=c04026e2cc6c48ce4c55425dbc585333906ae667;hb=2c2e369574d8be5edffe54d3b9758bab0cc7f46b;hp=1fb18a0adb4a884a8a8d2b841df6baabcbdc7075;hpb=c067541ef9e42e33742ad90e1a51c9aea2bcdc51;p=bookmarks_db.git diff --git a/Robots/bkmk_rforking.py b/Robots/bkmk_rforking.py index 1fb18a0..c04026e 100644 --- a/Robots/bkmk_rforking.py +++ b/Robots/bkmk_rforking.py @@ -1,7 +1,7 @@ """ Forking robot - Written by BroytMann. Copyright (C) 2000-2007 PhiloSoft Design + Written by BroytMann. Copyright (C) 2000-2007 PhiloSoft Design. """ @@ -14,6 +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() and errors from from the subprocess. +sys.stderr = open("err.log", 'a') check_subp = None subp_pipe = None @@ -29,14 +32,15 @@ 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) from bkmk_objects import Robot class robot_forking(Robot): - def check_url(self, bookmark, url_type, url_rest): + def check_url(self, bookmark): if not check_subp: restart_subp(self.log) # Not restart, just start afresh @@ -60,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