Python 中的 os.popen 函数 与 Pipe 管道的坑

我上周写了一个 Python 脚本。

处理数据。

遇到不寻常的问题。

打印日志位置不固定。

结果很奇怪。

很难检测到。

检测到破损管道异常。

这似乎与打印功能有关。

实测没问题。

运维说线上操作方式有问题。

在线办理是关键。

原理分析:
开发环境类似异常。
os.popen 函数执行命令。

异步命令执行。

父进程执行完毕。

关闭阅读侧水龙头。

子进程无法移出。

改进了断管异常。

具体来说:
os.popen 函数停止子进程。

子进程的输出连接到父进程。

未获取Popen返回值。

异步命令执行。

当父进程结束时。

读取侧管道已关闭。

无法读取子进程输出。

导致 Broken Pipe 异常。

解决办法:
了解原因后。

捕获并处理SIGPIPE信号。

或者使用标准日志框架。

使用标准日志框架的实际修复。

避免管道问题。

方便查看统一日志。

这次经历的总结。

强调管道的重要性。

os.popen 创建一个子进程。

父子进程管道关系。

了解文件描述符继承。

如标准输入、标准输出、标准错误。

调试和优化程序性能。

标准日志记录框架。

集中日志信息管理。

提高问题定位效率。

算了。

2019校招提前批|深信服面经(大数据岗)

深府大数据岗位2 02 2 年面试提前获批让我很感动。
另一方面,还有技术方面的问题。
首先有人问我了解Python什么,然后突然跳到C语言,问指针和内存管理。
我有点困惑,以为这只是与Python有关。
后来他们才发现,或许是想看看根基是否牢固。
该算法是一个跳跃步骤的问题。
对于DP递归问题,我写下了公式f(n)=f(n-1 )+f(n-2 ),并且还解释了边界条件。
关于斐波那契数列,我对比了递归和DP,说DP可以降低到O(n)。
我回答说,当时优化方面看起来还不错。
网络协议测试 TCP 和 Waves 四次。
WAITING TIME状态是客户端主动关闭并等待2 MSL,以防止旧数据包阻塞新连接。
当操作系统要求fork()时,父进程返回子PID,子进程返回0。
我也可以简单解释一下进程创建的概念。

第二面是技术深度面。
首先让我自我介绍一下。
我说我对大数据技术感兴趣,以前也开发过项目。
然后我问为什么选择大数据。
我认为这是一个非常有趣的立场,可以在分布式系统中进行解释。
至于Hadoop经济,我回顾了从HDFS到Hive的所有内容,说HDFS负责存储并响应MapReduce计算。
我已经详细解释了HDFS的写入过程。
NameNode定位DataNode,客户端写入数据块,并配置DataNode实例。
该计划的问题在于高集中度的闪购体系。
队列用于限流削峰,消息队列用于异步处理,原子Redis操作用于防止库存耗尽。
关于Python关于并发的例子,我说线程适合I/O密集型,协程适合高并发。
我还谈到了Gevent池和线程之间的区别。

第三次HR面试。
他们问我的家庭情况,我告诉他们我在哪个城市。
他们问我对加班有什么看法。
我说如果情况需要的话我可以加班,但是定期我想提高效率。
他还问我对深信服了解多少。
我说我看到了他们如何实践网络安全,使用了很多很棒的技术。
我觉得这很令人愉快。

综上所述,要让你信服大数据岗位,技术方面是重点,你需要解决算法问题,熟悉Hadoop生态,并清楚地解释你的项目经验。
面试时,要自信地回答问题,思路清晰,不要陷入困境。
公司应该提前知道这一点。
不要问他们不知道一切。
我为这个赛季做好了充分的准备,最后我感觉很好,所以我接受了这份工作。

python中强制关闭线程、协程、进程方法