gpt4 book ai didi

python - shell脚本在后台运行的进程没有输出

转载 作者:太空宇宙 更新时间:2023-11-04 12:37:48 25 4
gpt4 key购买 nike

我写了一个小脚本来测试 docker 容器中的一些服务器。

#!/bin/bash
echo started
python /opt/server.py &
nginx -g 'daemon off;'

python 服务器写入了一些我们需要查看的信息,但是当我运行 docker run -P image 或运行 docker run -dP image 时它没有显示并检查 docker 日志。

python 服务器使用printsys.stdout.write。两个都不出现我尝试重定向输出 python/opt/server.py >&1 和/dev/stdout。都没有用。来自 nginx 的日志很好。 docker 镜像将访问日志符号链接(symbolic link)到/dev/stdout。

我在/proc/#/fd/1 中查看了每个正在运行的进程,它们都指向同一个管道

l-wx------ 1 root root 64 Dec 15 21:18 1 -> pipe:[28195] 来自 ls

我不确定如何让它工作。

最佳答案

server.py 看起来像这样吗?

import time
while True:
print('something')
time.sleep(1)

当您在容器内的 while 循环中打印和休眠时,Python 会做一些奇怪的事情。要使其工作,您需要手动刷新循环打印语句:

import time
import sys
while True:
print('something')
sys.stdout.flush()
time.sleep(1)

关于python - shell脚本在后台运行的进程没有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41173802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com