💡
原文中文,约3200字,阅读约需8分钟。
📝
内容提要
文章介绍了在Python项目中使用psutil模块时遇到的问题和解决方法。作者在一个CI平台项目中使用psutil模块控制客户机的命令行操作,但发现当客户端断开连接时,整个进程会自动终止。通过排查发现是psutil模块中的一个bug导致的,经过修改代码逻辑后问题得到解决。作者还提到要查看psutil文档是否有相关说明,如果没有可以考虑向psutil做贡献。
🎯
关键要点
- 安装psutil模块的命令是pip install psutil。
- 项目要求是将命令行操作提供一个可视化的web界面。
- 使用SSH连接客户机并通过websocket实现长连接。
- disconnect事件触发时,服务端会自动销毁客户端的子进程。
- 发现客户端断开连接时,整个进程自动终止的问题。
- 通过print()调试发现psutil.Process()获取到的是主进程的pid。
- terminate()函数错误地终止了主进程。
- 修改代码逻辑后解决了问题,确保child_id不为None再获取子进程。
- 计划查看psutil文档以确认是否有相关说明,考虑为psutil贡献代码。
🏷️
标签
➡️