diff --git a/oml/api.py b/oml/api.py index 53e0fd9..093014c 100644 --- a/oml/api.py +++ b/oml/api.py @@ -23,7 +23,7 @@ def selectFolder(data): } ''' cmd = ['./ctl', 'ui', 'folder'] - p = subprocess.Popen(cmd, stdout=subprocess.PIPE) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, close_fds=True) stdout, stderr = p.communicate() path = stdout.decode('utf-8').strip() return { @@ -105,7 +105,6 @@ def restart(data): ''' restart (and upgrade if upgrades are available) ''' - #subprocess.Popen(['./ctl', 'restart'], preexec_fn=os.setpgrp, close_fds=True) subprocess.Popen(['./ctl', 'restart'], close_fds=True) return {} actions.register(restart, cache=False) diff --git a/oml/commands.py b/oml/commands.py index 3e10e7e..34e17e8 100644 --- a/oml/commands.py +++ b/oml/commands.py @@ -12,12 +12,12 @@ import settings root_dir = dirname(settings.base_dir) def run(*cmd): - p = subprocess.Popen(cmd) + p = subprocess.Popen(cmd, close_fds=True) p.wait() return p.returncode def get(*cmd): - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) stdout, error = p.communicate() return stdout diff --git a/oml/media/pdf.py b/oml/media/pdf.py index cde5c7c..95fa53c 100644 --- a/oml/media/pdf.py +++ b/oml/media/pdf.py @@ -35,7 +35,7 @@ def ql_cover(pdf): tmp, pdf ] - p = subprocess.Popen(cmd) + p = subprocess.Popen(cmd, close_fds=True) p.wait() image = glob('%s/*' % tmp) if image: @@ -58,7 +58,7 @@ def page(pdf, page): '-scale-to', '1024', '-cropbox', os.path.join(tmp, 'page') ] - p = subprocess.Popen(cmd) + p = subprocess.Popen(cmd, close_fds=True) p.wait() image = glob('%s/*' % tmp) if image: @@ -87,7 +87,7 @@ def page(pdf, page): '-sOutputFile=%s' % image, pdf ] - p = subprocess.Popen(cmd) + p = subprocess.Popen(cmd, close_fds=True) p.wait() with open(image, 'rb') as fd: data = fd.read() @@ -123,7 +123,7 @@ def info(pdf): ''' cmd = ['pdfinfo', pdf] - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) stdout, stderr = p.communicate() for line in stdout.strip().split('\n'): parts = line.split(':') @@ -168,7 +168,7 @@ def extract_text(pdf): cmd = ['/usr/bin/mdimport', '-d2', pdf] else: cmd = ['pdftotext', pdf, '-'] - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) stdout, stderr = p.communicate() if sys.platform == 'darwin': if 'kMDItemTextContent' in stderr: diff --git a/oml/media/txt.py b/oml/media/txt.py index 9a6428d..6d8283c 100644 --- a/oml/media/txt.py +++ b/oml/media/txt.py @@ -10,7 +10,7 @@ import subprocess def cover(path): image = tempfile.mkstemp('.jpg')[1] cmd = ['python2', 'static/txt.js/txt.py', '-i', path, '-o', image] - p = subprocess.Popen(cmd) + p = subprocess.Popen(cmd, close_fds=True) p.wait() with open(image, 'rb') as fd: data = fd.read() diff --git a/oml/utils.py b/oml/utils.py index 0702c55..c643573 100644 --- a/oml/utils.py +++ b/oml/utils.py @@ -135,7 +135,7 @@ def get_interface(): if sys.platform == 'darwin': #cmd = ['/usr/sbin/netstat', '-rn'] cmd = ['/sbin/route', '-n', 'get', 'default'] - p = subprocess.Popen(cmd, stdout=subprocess.PIPE) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, close_fds=True) stdout, stderr = p.communicate() interface = [[p.strip() for p in s.split(':', 1)] for s in stdout.strip().split('\n') if 'interface' in s] if interface: @@ -148,21 +148,21 @@ def get_local_ipv4(): ip = None if sys.platform == 'darwin': cmd = ['/sbin/route', '-n', 'get', 'default'] - p = subprocess.Popen(cmd, stdout=subprocess.PIPE) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, close_fds=True) stdout, stderr = p.communicate() interface = [[p.strip() for p in s.split(':', 1)] for s in stdout.strip().split('\n') if 'interface' in s] if interface: interface = interface[0][1] cmd = ['ifconfig', interface] - p = subprocess.Popen(cmd, stdout=subprocess.PIPE) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, close_fds=True) stdout, stderr = p.communicate() ips = [l for l in stdout.split('\n') if 'inet ' in l] if ips: ip = ips[0].strip().split(' ')[1] else: cmd = ['ip', 'route', 'show'] - p = subprocess.Popen(cmd, stdout=subprocess.PIPE) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, close_fds=True) stdout, stderr = p.communicate() local = [l for l in stdout.split('\n') if 'default' in l] if local: