【发布时间】:2017-06-02 17:24:12
【问题描述】:
我有一个 Python 脚本来启动一组 WebLogic 服务器的节点管理器。执行此操作的主要调用如下:
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() 时,如果我自己从操作系统手动启动节点管理器,我将无法正常连接。
【问题讨论】:
-
在传递给
exec_command()时不要将\n附加到命令中。 -
我的意思是它不会启动或停止节点管理器。有时它会打印一些 shell 输出,有时它什么也不打印。没有错误被抛出。
-
我去掉了 \n 换行符,但它仍然不起作用。我尝试像普通的 linux 可执行文件一样在前面添加一个点:./program,但这也不起作用。
-
我删除了新行,它有点工作。这些进程在内存中开始,但是当我尝试连接到节点管理器时,我收到 2 台或 3 台测试服务器的错误。 ://