Простые улучшения
Этот метод позволяет разорвать соединение с удаленной машины. Я бы предложил пару изменений
sleep
в цикл while, нет смысла тратить процессорное время на ожидание Вам это нужно?
Если вы хотите только убить сеанс, я бы избегал метода в вашем вопросе и использовал:
SSH -N -D $port $SSH_HOST &
Это установит соединение без оболочки, поскольку фоновая задача(-N
отключает оболочку и &
делает ее фоновой задачей ).
Вы можете получить (локальный )PID для этого с помощью $!
и убить его с помощьюkill
Например:
SSH -N -D $port $SSH_HOST &
TUNNEL_PID=$!
# Do some other stuff
kill $TUNNEL_PID
Иногда я наблюдал это в различных сборках на базе Debian. У меня есть своего рода -обходной путь, который мне помогает.
Если в вашей версии Ubuntu есть функция «гибридного сна», попробуйте ее. По сути, он приостанавливает/и записывает ОЗУ на диск, как в спящем режиме, в случае, если компьютер теряет питание переменного тока во время приостановки. Когда я возобновляю работу, мои устройства уже сопряжены, а аудиопрофиль (, для которого я в основном использую BT ), такой же, как и до приостановки.
Это не решение проблемы, а простой способ обойти ее без внесения каких-либо существенных изменений или обновлений, если -это необходимо
Единственным «негативным» эффектом является то, что для завершения операции приостановки требуется еще несколько секунд. Надеюсь это поможет!