commit 42396b11a75672caa2c8220d76fd6fb8721cef89 Author: Marek 'marx' Grac <mgrac@redhat.com> Date: Fri Jun 18 18:42:58 2010 +0200 fence_rsb: Force stdout close Resolves: rhbz#583040 diff --git a/fence/agents/rsb/fence_rsb.py b/fence/agents/rsb/fence_rsb.py index cb4f436..4ef4cf3 100755 --- a/fence/agents/rsb/fence_rsb.py +++ b/fence/agents/rsb/fence_rsb.py @@ -17,6 +17,7 @@ import getopt, sys import os import socket import time +import atexit from telnetlib import Telnet @@ -53,6 +54,14 @@ def version(): print "%s\n" % REDHAT_COPYRIGHT sys.exit(0) +def atexit_handler(): + try: + sys.stdout.close() + os.close(1) + except IOError: + sys.stderr.write("%s failed to close standard output\n"%(sys.argv[0])) + sys.exit(1) + def main(): depth = 0 POWER_OFF = 0 @@ -100,6 +109,8 @@ def main(): regex_list.append("really want to") regex_list.append("CLOSING TELNET CONNECTION") + atexit.register(atexit_handler) + if len(sys.argv) > 1: try: opts, args = getopt.getopt(sys.argv[1:], "a:hl:n:o:p:S:vV", ["help", "output="])