Python OS 由于执行了新的应用程序,命令不起作用

Python OS Commands Not Work Due To New App Execution

我需要检查 GoldenGate 进程的延迟。为此,我执行 Goldengate 而不是尝试 运行 GoldenGate 自己的命令 "info all".

import subprocess as sub
import re
import os

location = str(sub.check_output(['ps -ef | grep mgr'], shell = True)).split()
pattern = re.compile(r'mgr\.prm$')
print(type(location))
for index in location:
        if pattern.search(index)!=None:
                gg_location = index[:-14] + "ggsci"

exec_ggate = sub.call(str(gg_location))
os.system('info all')

然而,当我执行 GoldenGate 时,它​​会打开一个新的 GoldenGate 自己的 shell。所以,我认为正因为如此,Python 无法执行 运行 "info all" 命令。我怎么解决这个问题?如有遗漏,请告知。

提前谢谢你,

对于 Golden Gate 上的命令自动化,您在 Oracle 文档中有以下信息:https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_gettingstarted.htm#GWUAD1096

输入脚本 从操作系统的命令行使用以下语法。

ggsci < input_file

其中: 尖括号 (<) 字符将文件通过管道传送到 GGSCI 程序中。 input_file 是一个文本文件,称为 OBEY 文件,包含您要发出的命令,按要发出的顺序排列。

使用您的脚本(请记住,我不知道如何编码到 python),您可以按以下方式在 python 中简单地执行 shell 命令:

import os
os.system("command")

所以尝试这样做:

import os
os.system("ggsci < input_file")

按照文档的指示更改 input_file。 我想你这样做会更容易。