Ich versuche, die folgenden 2 Befehle in Python nacheinander.Führen Sie Subprozess sequentiell in Python
runmqsc <Queuem manager name>
Display QL (<queue name>)
Ich kann den Befehl rumqsc mit Subprozess ausführen.
subprocess.call("runmqsc <queue manager name>", shell= True)
Jetzt scheint diese Befehle wie die Kontrolle von Python zu nehmen. Wenn ich versuche, den nächsten Befehl mit Subprozess auszuführen, funktioniert es nicht wie erwartet. Ich bin mir nicht einmal sicher, wie ich die zweite ausführen soll (für die ich ein Argument übergeben muss).
Hinzufügen des Code-Schnipsel:
subprocess.call("runmqsc Qmgrname", shell= True)
subprocess.call("DISPLAY QL(<quename>)",shell=True)
Nun ist die erste Linie führt in Ordnung und wie durch tdelaney im Kommentar runmqsc wartet auf Eingabe von stdin erwähnt. Und nach dem Ausführen der ersten Zeile hängt das Programm, ohne die zweite Zeile auszuführen.
Jede Hilfe oder Verweise auf eines der verwandten Dokumente würde helfen. Dank
Können Sie dies auf der Kommandozeile tun? – tdelaney
Runmqsc nimmt Befehle von Stdin. Wenn Sie stdin nicht in eine Pipe umleiten oder die Befehle beim Ausführen des Programms nicht manuell eingeben, wird es hängen bleiben und der Aufruf wird nicht zurückkehren. Können Sie ein kleines Skript posten, das zeigt, wie Sie den Befehl ruuieren, damit wir Fixes vorschlagen können? – tdelaney
@tdelaney: Ja, ich kann die Befehle in der Befehlszeile ausführen (ich benutze keinen Subprozess). Ich versuche, die Befehle direkt nacheinander auszuführen.Bitte finden Sie die bearbeitete Frage (haben die Frage mit Code-Ausschnitt aktualisiert). Danke – Phoenix