当前位置:首页 > linux > 正文内容

Python2 的Popen在docker中执行会挂起主进程

root4年前 (2021-01-19)linux1231

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吧

扫描二维码推送至手机访问。

版权声明:本文由一叶知秋发布,如需转载请注明出处。

本文链接:https://zhiqiu.top/?id=73

分享给朋友:

相关文章

linux 慎用 kill -9 干掉程序

 kill -9 强制结束某程序的时候,如果程序的有退出信号触发处理回收子进程的,将失效。会造成僵尸进程。...

supervisor的安装使用

一、supervisor简介Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supe...

Ubuntu 16.04 RabbitMq 安装与运行

Ubuntu 16.04 RabbitMq 安装与运行

准备工作一台服务器:Ubuntu Server 16.04.1 LTS 64位安装RabbitMq可以参照RabbitMq官网的安装教程(Installing on Debian and Ubuntu),来进行安装。这里我们使用apt-ge...

Cannot uninstall 'ipaddress'. It is a distutils installed project and thus

强制升级:sudo pip install --ignore-installed +模块名...

修改linux时区

ubuntu:rm  /etc/localtimeln -sf /usr/share/zoneinfo/Asia/Shanghai  /etc/localtimecentos echo "A...

apach 启动失败 可能因为安全策略

apach 启动失败 可能因为安全策略

执行 setenforce 0再次启动systemctl restart httpdOK 搞定...