2017-06-02 2 views
0

Ich habe ein Python-Skript, um eine Gruppe von WebLogic Server-Knoten-Manager zu starten. Der Haupt nennen dies zu tun, ist wie folgt:Paramiko exec_command verhält sich nicht wie erwartet

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

Dadurch werden die Prozesse auf den Servern starten, aber wenn ich versuche, Node Manager über WLST des nmConnect() Ich erhalte einen Fehler zu verbinden, dass Node Manager nicht ist Arbeiten. Aber eine Maschine funktioniert ...

Ich führe dies von einem Skript auf einer anderen Maschine. Das Skript verwendet die paramiko Python-Bibliothek von Drittanbietern, um auf den Remote-Computer zuzugreifen und dann den obigen Befehl aufzurufen. Ein interessanter Teil dieses Problems ist, dass das Programm in ps -ef | grep nodemanager ausgeführt wird. Jedoch, wenn ich versuche, nmConnect() auszugeben, kann ich nicht verbinden, wie ich normalerweise kann, wenn ich manuell Knotenmanager vom Betriebssystem selbst starte.

+0

Don ''n' 'an den Befehl anfügen, wenn' exec_command()' übergeben wird. – pynexj

+0

Was meinst du mit "* tut nichts *"? Irgendwelche Fehler? Irgendeine Ausgabe? Was ist der Exit-Code? – pynexj

+0

Ich meine, es startet oder stoppt den Knotenmanager nicht. Manchmal druckt es eine Shell-Ausgabe, manchmal druckt es nichts. Es werden keine Fehler ausgelöst. – user3870315

Antwort

0

gibt der startNodeManager.sh bei jeder Gelegenheit mehr als wenige Zeilen Ausgabe aus? Wenn ja, meine Vermutung auf Prozess Blockierung während der Ausführung sein würde, weil Sie ausgelesene es nicht ausgegeben ist ...

Für die richtige Art und Weise Befehle über paramiko auszuführen, würde ich auf diese empfehlen, sich: http://stackoverflow.com/a/32758464

+0

Ja, es gibt eine enorme Menge an Output. Wenn ich auf die Ausgabe warte, sitzt das Programm, das ich geschrieben habe, einfach da. Wenn mir die Ausgabe egal ist, startet das Programm im Speicher, aber ich kann nicht auf den gestarteten Server zugreifen und ihn benutzen. Es ist ein komplexes Problem, und wenn ich es erläutere, wird es wahrscheinlich nicht verständlicher. Danke für Ihre Antwort. Ich werde den Hyperlink prüfen! – user3870315

Verwandte Themen