Paramiko SSH exec_command (сценарий оболочки) возвращается до завершения - PullRequest
14 голосов
/ 09 июля 2010

Я запускаю сценарий оболочки с удаленной машины Linux, используя paramiko.Запустится скрипт оболочки и выполните команду make -j8.Однако exec_command возвращается до завершения make.

Если я запускаю скрипт на локальном компьютере, он выполняется правильно.

Может кто-нибудь объяснить мне такое поведение?

1 Ответ

25 голосов
/ 09 июля 2010

Вам нужно дождаться завершения приложения, 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"
...