Создайте простой скрипт, который запускается для каждой новой оболочки (, например. позвонив из своего.profile
). Он должен проверить, в каком сеансе Tmux он находится (, если он вообще находится в одном ), и запускать соответствующую команду только в том случае, если он находится в другом сеансе, кроме a
, b
или c
:
#!/bin/bash
if [ -z "$TMUX" ] ; then
# not in tmux session
exit
fi
TMUX_SESSION=$(tmux display-message -p '#{session_name}')
case "$TMUX_SESSION" in "a"|"b"|"c")
exit ;;
*)
ssh machinename command &
esac
Если ваша система использует NetworkManager, то sudo systemctl restart networking
, скорее всего, не сделает ничего полезного и даже может работать против NetworkManager, в зависимости от того, как именно настроена ваша система.
В качестве фона networking.service
используются устаревшие команды ifup
/ ifdown
и их файл конфигурации /etc/network/interfaces
. Когда NetworkManager используется, вам не нужно, чтобы :NetworkManager мог считывать свою конфигурацию непосредственно из /etc/network/interfaces
, из каталога /etc/NetworkManager/system-connections/
, из сетевых настроек пользователя -, хранящихся в среде вашего рабочего стола, и/или из подсистемы netplan
в современных Ubuntu/Mint.
Если ваше VPN-подключение также интегрировано с NetworkManager, при необходимости он должен автоматически перезапускать VPN-подключение. Итак, я предполагаю, что вы используете VPN-клиент, который является либо отдельным продуктом, не имеющим полной интеграции с NetworkManager, либо вы настроили его таким образом, чтобы обойти NetworkManager.
Вам следует определить, какие службы (и )связаны с вашим VPN-соединением, и попытаться перезапустить их после перехода с беспроводного соединения на проводное или наоборот.
На рынке так много различных реализаций VPN, что откровенно невозможно дать универсальные инструкции, не зная более подробной информации. Ваш VPN основан на IPsec, L2TP, OpenVPN, Wireguard или это какой-то проприетарный продукт? Как вы его настроили и как вы его обычно используете?