【发布时间】:2022-06-18 00:18:10
【问题描述】:
我有一台运行 kubernetes 集群的 ubuntu 机器。我基本上是在尝试从 python3 脚本在后台运行 Kubernetes 命令,但它不起作用,请帮助...
下面是较大脚本的部分代码,我使用格式化字符串创建 cmd4,然后将 cmd4 作为 os.system(cmd4) 传递给 os.system。但是,一旦我执行脚本,它就会开始在 cmdline 中显示日志。我尝试使用 nohup 以及下面提到的方法,但它开始在 nohup.out 中填充日志。
for podname in pod_names:
if "smf" in podname or "pcf" in podname or "udm" in podname:
containername = 'worker'
else:
containername = 'cppe'
**cmd4 = f"kubectl logs -f -n core {podname} --container={containername} > {podname}_{containername}_log </dev/null &>/dev/null &&"**
cmd5 = f"echo $! >> pid.txt"
os.system(cmd4)
os.system(cmd5)
pid_file = open('pid.txt', 'a+')
pid_file.write("\n")
pid_file.close
==================================
尝试使用 nohup 为:
cmd4 = f"nohup kubectl logs -f -n core {podname} --container={containername} > {podname}_{containername}_log /null &>/dev/null &&"
但它给出了这个o/p
更新的副本:1
deployment.apps/core-pcf 已配置 nohup:忽略输入并将输出附加到“nohup.out”
【问题讨论】:
-
subprocess可能会给你比os.system()shell stuff 更好的结果
标签: python python-3.x kubernetes scripting