“在没有paramiko的情况下通过python运行ssh时,不会分配伪终端,因为stdin不是终端”

我在Python中运行ssh而不使用像Paramiko这样的外部库.我有理由这样做,而不是通过外部库.

基本上我在做subprocess.Popen(“ssh -t bla – command”)

这样做时我收到以下消息:

Pseudo-terminal will not be allocated because stdin is not a terminal.

我用-t运行它的原因是我希望远程命令在我杀死我的python脚本时终止.

当我尝试使用-t -t(强制它)时,我收到以下消息:

tcgetattr: Inappropriate ioctl for device

有没有办法用-t通过Python运行我的ssh命令?

解决方法:

我可以恭敬地建议您提出错误的问题,并且正确的问题可能类似于“如何在我的python程序终止时确保子进程终止”

你可以做一些聪明的unix东西,比如分配一个pty,并确保你的子进程使用它作为std in out等,这样ssh命令认为​​它正在与终端而不是管道通话,但这可能不是你的真的很想做.

上一篇:linux – 如何访问子进程的STDIN?


下一篇:java – Ant忽略stdin的输入