我有一个非常简单的脚本,该脚本建立与另一台主机的连接,然后创建另一个应用程序通过其连接到SQL Server的隧道。
self.dicSession['server'] = sshtunnel.SSHTunnelForwarder(
('remote_host', 22),
ssh_username="username",
ssh_password="password",
ssh_private_key="key_rsa",
remote_bind_address=('remote_host', 53425),
local_bind_address=('localhost', 1433),
)
self.dicSession['server'].start()
工作正常。但是该命令停止服务器。建立连接后,我正在使用隧道(在远程主机的53425端口和本地主机的1433端口之间)连接到在远程主机上运行的SQL Server。到目前为止,一切正常。但是,似乎可以通过命令停止SSH连接
self.dicSession['server'].stop()
无法正常工作。尽管有命令停止连接,我仍然能够执行SQL语句并获得结果。此外,当我在命令后执行SQL查询时
self.dicSession['server'].stop()
该应用程序-我们使用PyQT5构建的应用程序-冻结。老实说,我并没有尝试在没有GUI的情况下运行脚本,但是我将需要GUI,因为该应用程序不仅适合我,而且适合不熟悉CLI的其他人。
答案 0 :(得分:0)
发生这种情况是因为您的客户端仍处于打开状态。
关闭客户端后,它将允许您停止服务器。