При остановке сервера SSHTunnel приложение зависает - PullRequest
1 голос
/ 09 марта 2020

У меня очень простой скрипт, который устанавливает соединение с другим хостом, а затем создает туннель, через который другое приложение подключается к SQL Серверу.

    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 серверу, который работает на удаленном хосте. До этого момента все работало нормально. Однако кажется, что остановка соединения S SH с помощью команды

self.dicSession['server'].stop()

не работает должным образом. Несмотря на команду остановить соединение, я все еще могу выполнить оператор SQL и получить результаты. Более того, когда я выполняю запрос SQL после команды

self.dicSession['server'].stop()

, приложение, которое мы строим с использованием PyQT5, зависает. Если честно, я не пытался запустить скрипт без GUI, но мне понадобится GUI, так как приложение предназначено не только для меня, но и для других людей, которые не знакомы с CLI.

...