В случае, если вы используете Python версия> = 3.6, я советую работать с асинхронной библиотекой, которая предоставляет возможности ожидания для оптимизации времени выполнения и более управляемого простого кода.
Например, вы можете используйте библиотеку asyncs sh, которая поставляется с python и выполняет работу в соответствии с запросом. Обычно написание кода asyn c, который использует спящий режим для ожидания выполнения задачи, следует заменить следующим образом.
import asyncio, asyncssh, sys
async def run_client():
async with asyncssh.connect('localhost') as conn:
result = await conn.run('ls abc')
if result.exit_status == 0:
print(result.stdout, end='')
else:
print(result.stderr, end='', file=sys.stderr)
print('Program exited with status %d' % result.exit_status,
file=sys.stderr)
try:
asyncio.get_event_loop().run_until_complete(run_client())
except (OSError, asyncssh.Error) as exc:
sys.exit('SSH connection failed: ' + str(exc))
Дополнительную документацию можно найти здесь: asyncs sh