2017-06-02 8 views
0

のWebLogicグループのノードマネージャを起動するためのPythonスクリプトがあります。Paramiko exec_commandが期待どおりに動作しない

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

これは、サーバ上のプロセスを開始しますが、私はWLSTののnmConnect()を介してノードマネージャに接続しようとすると、ノードマネージャがないことを、私はエラーが表示されます。次のようにこれを行うには、メインの呼び出しがありますワーキング。しかし、1台のマシンが動作します...

私は別のマシンのスクリプトからこれを実行しています。このスクリプトはサードパーティのparamiko Pythonライブラリを使用してリモートマシンにssh接続し、上記のコマンドを呼び出します。この問題の興味深い部分は、プログラムがps -ef | grep nodemanagerで実行されていることです。しかし、私がnmConnect()を発行しようとすると、オペレーティングシステムから手動でノードマネージャを手動で開始すると、通常通りに接続できません。

+0

ドン'exec_command()'に渡すときに '\ n'をコマンドに追加しないでください。 – pynexj

+0

"*何もしない*"とはどういう意味ですか?エラーはありますか?すべての出力?終了コードとは何ですか? – pynexj

+0

ノードマネージャを起動または停止しないという意味です。場合によっては何も出力しない場合があります。エラーはスローされません。 – user3870315

答えて

0

startNodeManager.shは何らかの出力を出力しますか?もしそうなら、あなたはそれの出力を読んでいないので、私の推測では、実行時のブロッキングプロセスになります...

paramiko経由でコマンドを実行するための適切な方法については、私はこれを見てお勧めします:http://stackoverflow.com/a/32758464

+0

はい、大量の出力があります。私が出力を待つなら、私が書いたプログラムはただそこに座っているだけです。私が出力に気にしない場合、プログラムはメモリ内で起動しますが、起動したサーバにアクセスして使用することはできません。それは複雑な問題であり、私がそれを説明することはおそらくそれをより理解しづらいものではないでしょう。返信してくれてありがとう。私はハイパーリンクをチェックアウトします! – user3870315

関連する問題