Python subprocess shell=True导致子进程无法正确终止的排查与解决

本文深入分析Python中使用subprocess模块时设置shell=True导致的子进程无法正确终止及资源泄漏问题。当shell=True时,实际执行的是Shell解释器而非命令本身,导致直接杀死子进程ID无法释放其继承的文件描述符(如监听端口)。通过对比shell=False的使用方式,并解析进程继承机制,提供了避免此类坑位的具体代码修改建议及排查思路。

Python subprocess shell=True导致子进程无法正确终止的排查与解决

Python 捕获 Shell 脚本输出结果的两种方法

本文介绍在 Python 中捕获 Shell 脚本或命令输出结果的两种主要方式。推荐使用 subprocess 模块的 Popen 类,通过指定 stdout=PIPE 和调用 communicate() 方法获取标准输出与错误信息。此外,简要提及仅适用于 Unix/Linux 的 commands 模块及其 getstatusoutput 函数的用法。

Linux进程信号:kill与trap捕获

从Linux进程信号的基本机制出发,掌握kill发送信号、trap在Shell中捕获信号的方法,并通过可验证的实验理解优雅退出、脚本清理与常见避坑。

Linux进程信号:kill与trap捕获

Docker运行模式:前台与后台切换

从 Docker 容器的前台(foreground)与后台(detached)运行模式入手,说明两种模式的区别、常用切换操作、状态验证及容易踩坑的命令与进程问题,帮助读者快速掌握实际使用方法。

Docker运行模式:前台与后台切换