2017-06-02 192 views
0

我有一个Python脚本来启动一组WebLogic服务器的节点管理器。主要调用做到这一点如下:Paramiko exec_command不像预期的那样运行

stdin, stdout, stderr = client.exec_command('/app/oracle/Middleware/Oracle_Home/user_projects/domains/base_domain/bin/startNodeManager.sh')

这将启动进程的服务器上,但是当我尝试通过WLST的nmConnect()连接到节点管理器,我收到一个错误,节点管理器是不加工。然而,一台机器工作...

我从一个脚本运行在不同的机器上。脚本使用第三方paramiko Python库ssh进入远程机器,然后调用上述命令。这个问题的一个有趣的部分是程序看起来在ps -ef | grep nodemanager中运行。但是,当我尝试发出nmConnect()时,如果我自己手动从操作系统手动启动节点管理器,则无法正常连接。

+0

唐当传递给'exec_command()'时,不会将'\ n'追加到命令中。 – pynexj

+0

“*不做任何事*”是什么意思?任何错误?任何输出?什么是退出代码? – pynexj

+0

我的意思是它不会启动或停止节点管理器。有时它会打印一些shell输出,有时它不会打印任何内容。没有错误被抛出。 – user3870315

回答

0

通过任何机会输出超过几行输出的startNodeManager.sh?如果是这样,我的猜测是对执行过程中的过程阻断,因为你不读出它的输出...

对于通过的paramiko执行命令适当的方式,我建议你看这个:http://stackoverflow.com/a/32758464

+0

是的,有大量的输出。如果我等待输出,我写的程序就在那里。如果我不关心输出,程序将在内存中启动,但我无法访问启动的服务器并使用它。这是一个复杂的问题,我解释它可能不会使它更容易理解。感谢您的答复。我会检查超链接! – user3870315

相关问题