这可能是不好的做法,所以请原谅我,但是当 python 以非 telnet lib 异常或非 paramiko (SSH) 异常结束时,SSH 或 Telnet 连接会自动关闭吗?另外,sys.exit() 会关闭脚本正在使用的所有连接吗?
最佳答案
在解释器中:
>>> c = paramiko.SSHClient()
>>> c.connect(hostname="127.0.0.1", username="funkysayu", password="xxxx")
所以在这里,让我们运行一个netstat -putelan | grep ":22"
:
tcp 0 0 127.0.0.1:47380 127.0.0.1:22 ESTABLISHED 1001 149999 7934/python2
tcp 0 0 127.0.0.1:22 127.0.0.1:47380 ESTABLISHED 0 150000 -
现在让我们终止 Python,并在 (kill -9 7934 && netstat -putelan | grep ":22"
) 之后运行 netstat
tcp 0 0 127.0.0.1:47382 127.0.0.1:22 TIME_WAIT 0 0 -
它没有正确关闭套接字(服务器处于 TIME_WAIT 状态),但客户端不再存在连接。
@Heller 的回答解释了为什么它会这样工作。
关于python - python自动关闭SSH和Telnet吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33017847/