我正在尝试在我们的kubernetes集群中部署hubcommander的实例。与我们在那里运行的其他应用程序不同,此应用程序使用shell script作为入口点,该入口点仅在执行一些引导步骤之后才启动python进程。
这带来了一个问题,因为运行python的子进程未将日志输出到stdout,因此当我尝试使用kubectl logs <pod>
对进程进行故障排除时,除了入口点脚本编写的日志之外,我什么也没得到。
此行为不会在本地重现,在该容器中以完全相同的方式运行会显示来自主进程和子进程的日志。
有没有办法告诉bash脚本以相同的PID执行python?还是将日志发送到同一标准输出?
答案 0 :(得分:0)
最终,我发现缺少日志与创建子进程无关。
而是由于默认情况下python缓冲区输出。
使用'u'
标志执行该过程对我来说解决了这个问题。