Python2 的Popen在docker中执行会挂起主进程
python2.7
因业务需求。要把程序放入到docker容器中
但是在docker执行的时候程序出现异常缓慢的情况
检查函数执行情况发现
当第一个线程执行到popen的时候会导致所有线程的挂起
p1 = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True)
原因是py2的bug
解决方案 pip install subprocess32
替代subprocess
p1 = subprocess.Popen32(command, shell=True, stdout=subprocess32.PIPE, stderr=subprocess32.STDOUT, close_fds=True)
https://bugs.python.org/issue42950
能使用py3还是使用py3吧