about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--ranger/ext/popen_forked.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/ranger/ext/popen_forked.py b/ranger/ext/popen_forked.py
index bff1818e..85c8448b 100644
--- a/ranger/ext/popen_forked.py
+++ b/ranger/ext/popen_forked.py
@@ -18,9 +18,12 @@ def Popen_forked(*args, **kwargs):  # pylint: disable=invalid-name
         return False
     if pid == 0:
         os.setsid()
-        kwargs['stdin'] = open(os.devnull, 'r')
-        kwargs['stdout'] = kwargs['stderr'] = open(os.devnull, 'w')
-        subprocess.Popen(*args, **kwargs)
+        with open(os.devnull, 'r') as null_r, open(os.devnull, 'w') as null_w:
+            kwargs['stdin'] = null_r
+            kwargs['stdout'] = kwargs['stderr'] = null_w
+            with subprocess.Popen(*args, **kwargs):
+                # Just to enable using with
+                pass
         os._exit(0)  # pylint: disable=protected-access
     else:
         os.wait()