停止 SSHTunnel 服务器时,应用程序挂起
Posted
技术标签:
【中文标题】停止 SSHTunnel 服务器时,应用程序挂起【英文标题】:When stopping SSHTunnel server the application hangs 【发布时间】:2020-06-21 17:12:37 【问题描述】:我有一个非常简单的脚本,它建立与另一台主机的连接,然后创建另一个应用程序连接到 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 的人。
【问题讨论】:
【参考方案1】:发生这种情况是因为您的客户端仍处于打开状态。
一旦你关闭你的客户端,它将允许你停止服务器。
【讨论】:
您的回答究竟对解决我的问题有何帮助?我可以得出结论,因为我仍然可以执行 SQL 查询,所以必须打开 SSH 连接。以上是关于停止 SSHTunnel 服务器时,应用程序挂起的主要内容,如果未能解决你的问题,请参考以下文章
iOS AVPlayer 后台播放问题自动停止问题 防止应用被后台挂起方法
从 Xcode 启动 iOS 模拟器并得到黑屏,然后 Xcode 挂起并且无法停止任务