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):