如何重新进入容器脚本执行?

问题描述 投票:0回答:1

我有需要永远运行的容器和python脚本,例如:

import time    
if __name__ == "__main__":
    n = 0
    while True:
        print(f"Script is running! I want to see this string ! N is {n}")
        n += 1
        time.sleep(200)

所以我

  1. 使用mobaxterm进入虚拟机
  2. 进入容器为
    docker exec -it -u root container_name bash
  3. 在容器内运行脚本
    python my_script.py
  4. 脚本开始工作,我可以看到脚本在标准输出中打印的字符串...
  5. 脚本正在运行!我想看看这个字符串!

但是会话被中断,但脚本仍在运行。我可以做什么来输入“脚本”来查看它生成的字符串/日志?我怎样才能做到而不中断脚本?它需要在容器内永远运行。

python docker cmd scripting containers
1个回答
0
投票

但是会话被中断了

这意味着脚本收到 SIGHUP 并终止。该脚本不再运行。

我该怎么做才能进入“脚本”以查看它生成的字符串/日志?

不可能,终端已断开连接并关闭。当脚本尝试写入输出时,它将收到一个 SIGPIPE,并且 python 将抛出异常并终止。

© www.soinside.com 2019 - 2024. All rights reserved.