Я запускаю сценарий оболочки с удаленной машины Linux с помощью Paramiko. Сценарий оболочки запускается и выполняет команду make -j8. Однако exec_command возвращается до завершения make.
Если я запускаю скрипт на локальной машине, он выполняется правильно.
Может ли кто-нибудь объяснить мне такое поведение?
Ответ 1 · рейтинг 28 · deft_code
Вам нужно дождаться завершения приложения, exec_command не является блокирующим вызовом.
print now(), "before call"
stdin, stdout, sterr = ssh.exec_command("sleep(10)")
print now(), "after call"
channel = stdout.channel
print now(), "before status"
status = channel.recv_exit_status()
print now(), "after status"