diff --git a/lib/utils/process.py b/lib/utils/process.py index be7d774962d42488a1d82db76fc01ba2bad6c421..2e015de7f6607610fad61f023c0aa2757411427c 100644 --- a/lib/utils/process.py +++ b/lib/utils/process.py @@ -251,8 +251,10 @@ def SetupDaemonFDs(output_file, output_fd): # Open /dev/null (read-only, only for stdin) devnull_fd = os.open(os.devnull, os.O_RDONLY) + output_close = True + if output_fd is not None: - pass + output_close = False elif output_file is not None: # Open output file try: @@ -268,6 +270,12 @@ def SetupDaemonFDs(output_file, output_fd): os.dup2(output_fd, 1) os.dup2(output_fd, 2) + if devnull_fd > 2: + utils_wrapper.CloseFdNoError(devnull_fd) + + if output_close and output_fd > 2: + utils_wrapper.CloseFdNoError(output_fd) + def StartDaemon(cmd, env=None, cwd="/", output=None, output_fd=None, pidfile=None):