Могу ли я получить код выхода команды, выполненной в подоболочке через ssh?

Я пытаюсь использовать Paramiko для написания сценария развертывания, и у меня проблемы с кодами выхода из команд, которые я запускаю . Я использую код, аналогичный приведенному в в этом ответе , но он немного сложнее. По сути, из наших ящиков для разработчиков мы должны пройти через сервер перехода, а оттуда - на серию производственных машин. Оказавшись там, мы должны переключиться на системного пользователя (sudo su - systemuser), а затем мы можем запускать команды.

Проблема в том, что, насколько я понимаю, у меня есть 3 подоболочки - сеанс ssh, вложенная команда ssh и затем подоболочка su. Я не могу заставить Paramiko вернуть мне код выхода команд во внутренней подоболочке - я предполагаю, что код выхода, который он в конечном итоге вернет, будет кодом команды ssh. Я подозреваю, что эта проблема на самом деле не специфична для Paramiko - поддерживает ли протокол SSH такое использование?

В настоящее время я всегда выполняю:

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

, а затем разбираю это на клиенте, но это довольно уродливо - это есть ли способ получше?

6
задан Community 23 May 2017 в 11:45
поделиться