Я использую Python (OSX Python 2.7.10) для ssh в коробку Debian (Python 2.7.9), затем запускаю скрипт bash (./capture). Скрипт bash содержит несколько команд tcpdump. Проблема, которую я не могу понять, состоит в том, как отобразить живые результаты из запущенного скрипта bash на терминале.
#!/usr/bin/env python3
import subprocess, os
output = subprocess.run(["ssh", "ju@192.168.199.125", "sudo ./capture"])
print(output)
Я могу выполнить ssh и успешно запустить скрипт, но я не получаю вывод. Когда я нажимаю CTRL C, я получаю следующий след:
**^CTraceback (most recent call last):
File "/Users/junesjoseph/run.py", line 3, in <module>
output = subprocess.run(["ssh", "junes@192.168.199.125", "sudo ./capture"])
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 405, in run
stdout, stderr = process.communicate(input, timeout=timeout)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 835, in communicate
self.wait()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1457, in wait
(pid, sts) = self._try_wait(0)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1404, in _try_wait
(pid, sts) = os.waitpid(self.pid, wait_flags)
KeyboardInterrupt**
Любая помощь очень ценится. спасибо