首页 > 解决方案 > Python子进程模块返回码问题

问题描述

我正在使用 python 子进程模块执行kubectl exec 命令,该命令返回错误。我仍然收到 0 的返回码和无效的 CRASHLOOPBACK 状态的 pod 状态。

在执行命令时获取正确的返回码需要帮助。执行的命令:

cmd = f"kubectl -n {cls.NS} exec -i {mainpod} -- sh -c \"/opt/user/data/bin/mdm -waitDb -v && /opt/user/data/bin/mdm -applySchema /etc/data/db/tables/ -v\""
result = subprocess.run(shlex.split(cmd))

日志输出:

INFO : Connection Obtained - database ready
ERROR: /etc/data/db/tables/ is not a valid directory
INFO : Closed DB connection.

CompletedProcess(args=['kubectl', '-n', 'test', 'exec', '-i', 'db-pod', '--', 'sh', '-c', '/opt/user/data/bin/mdm -waitDb -v && /opt/user/data/bin/mdm -applySchema /etc/data/db/tables/ -v'], returncode=0)

在上述情况下,如何获取正确的返回码?

标签: pythonpython-3.xkubernetessubprocesskubectl

解决方案


推荐阅读