停止 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 服务器时,应用程序挂起的主要内容,如果未能解决你的问题,请参考以下文章

nfs问题导致df挂起

iOS AVPlayer 后台播放问题自动停止问题 防止应用被后台挂起方法

从 Xcode 启动 iOS 模拟器并得到黑屏,然后 Xcode 挂起并且无法停止任务

mybatis單元測試成功,但是起服務測試失敗的原因:mybatis.xml配置錯了!

每次我想运行hibernate jpa应用程序时它都会挂起

Chrome 挂起“发送请求”似乎与套接字相关