Kann ich den exit-code eines Befehls in einer subshell ausgeführt, die über ssh?

Ich versuche, Paramiko zu schreiben, ein deployment-Skript, und ich habe Probleme mit exit-Code aus dem Befehle, die ich ausführen. Ich benutze ähnlichen code wie den in diese Antwort, aber es ist ein wenig komplizierter. Im Grunde genommen, aus unserer dev-Boxen wir uns durch einen Sprung server, und von dort aus zu einer Reihe von Maschinen in der Produktion. Dort angekommen haben wir die Umstellung auf ein system-user (sudo su - systemuser) und dann können wir Befehle ausführen.

Das problem ist, dass ich es verstehe ich habe 3 Unterschalen - der ssh-Sitzung, die verschachtelte ssh-Befehl und dann die su subshell. Ich kann nicht Paramiko, um mir wieder der exit-code des Kommandos in das innere subshell - ich denke, der exit-code wird es irgendwann wieder werden, dass der ssh-Befehl. Ich vermute, das problem ist eigentlich nicht spezifisch für Paramiko - nicht das SSH-Protokoll unterstützen auch diese Art der Nutzung?

Ich bin derzeit immer ausführen:

(my command); echo "Process terminated with exit code $?"

und dann analysieren diese auf dem client, aber es ist ziemlich hässlich - gibt es einen schöneren Weg?

InformationsquelleAutor Colin | 2011-03-17

Schreibe einen Kommentar