[РЕШЕНО] netctl-auto: подключение при просыпании (открытии крышки ноутбука)

Всем привет.

Настраивал сетевое подключение через netctl по этому руководству.
Использую netctl-auto и wpa_actiond. У меня 2 сети. Когда появляюсь в сети A, запускается [email protected]\x2dA.service, когда нахожусь в сети B, запускается [email protected]\x2dB.service. Всё вроде отлично. Ноутбук всегда в сети. Но есть одна маленькая проблема которая меня раздражает.

Если например нахожусь в сети A и закрываю крышку ноутбука на некоторое время, то после её открытия сеть отваливается. И ничего не помогает, даже рестарт сервиса. Помогают только 2 вещи: либо перезагрузка ноута, либо ручной останов и ручной запуск [email protected]

Вопрос, можно как нибудь сделать, чтоб при открытии крышки ноутбука, оно само конектилось к найденной сети (A или B)?

Вот настройки одной из (второй конфиг аналогичен):
# /etc/netctl/wlp4s0-klay_home

Description='Automatically generated profile by wifi-menu'
Interface=wlp4s0
Connection=wireless
Security=wpa
ESSID=klay_home
IP=dhcp
Key=*********
$ ~/work/www/notify ps aux | grep [n]etwork
root      8230  0.0  0.0  32772  3352 ?        Ss   11:13   0:00 wpa_supplicant -B -P /run/wpa_supplicant_wlp4s0.pid -i wlp4s0 -D nl80211,wext -c/run/network/wpa_supplicant_wlp4s0.conf -W
root      8232  0.0  0.0   4196  1332 ?        Ss   11:13   0:00 wpa_actiond -p /run/wpa_supplicant -i wlp4s0 -P /run/network/wpa_actiond_wlp4s0.pid -a /usr/lib/network/auto.action


$ ~/work/www/notify systemctl status  [email protected][email protected] - Automatic wireless network connection using netctl profiles
   Loaded: loaded (/usr/lib/systemd/system/[email protected]; enabled)
   Active: active (running) since Sun 2014-11-09 11:13:37 EET; 19min ago
     Docs: man:netctl.special(7)
  Process: 8163 ExecStop=/usr/bin/netctl-auto stop %I (code=exited, status=0/SUCCESS)
  Process: 8212 ExecStart=/usr/bin/netctl-auto start %I (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/system-netctl\x2dauto.slice/[email protected]
           ├─8230 wpa_supplicant -B -P /run/wpa_supplicant_wlp4s0.pid -i wlp4s0 -D nl80211,wext -c/run/network/wpa_supplicant_wlp4s0.conf -W
           ├─8232 wpa_actiond -p /run/wpa_supplicant -i wlp4s0 -P /run/network/wpa_actiond_wlp4s0.pid -a /usr/lib/network/auto.action
           └─8258 dhcpcd -4 -q -t 30 -K -L wlp4s0

Nov 09 11:13:37 edge netctl-auto[8212]: Included profile 'wlp4s0-klay_home'
Nov 09 11:13:37 edge wpa_actiond[8232]: Starting wpa_actiond session for interface 'wlp4s0'
Nov 09 11:13:38 edge wpa_actiond[8232]: Interface 'wlp4s0' connected to network 'klay_home'
Nov 09 11:13:38 edge dhcpcd[8238]: version 6.6.0 starting
Nov 09 11:13:38 edge dhcpcd[8238]: DUID 00:01:00:01:1b:e6:f7:d7:0c:8b:fd:91:4a:f1
Nov 09 11:13:38 edge dhcpcd[8238]: wlp4s0: IAID fd:91:4a:f1
Nov 09 11:13:39 edge dhcpcd[8238]: wlp4s0: rebinding lease of 192.168.1.133
Nov 09 11:13:44 edge dhcpcd[8238]: wlp4s0: leased 192.168.1.133 for 28800 seconds
Nov 09 11:13:44 edge dhcpcd[8238]: wlp4s0: adding route to 192.168.1.0/24
Nov 09 11:13:44 edge dhcpcd[8238]: wlp4s0: adding default route via 192.168.1.1
Может я просто что-то не установил/не включил? Не ругайте сильно, не силен в настройках сети
Ещё есть такой нюанс. Если в сети A закрыть крышку ноутбука и переместиться в сеть B (около часа). То после открытия крышки сеть B подхватывается налету. Ничего делать не надо. И на оборот соответственно также. Но если в одной сети закрыть крышку и через некоторое время открыть - не цепляется сеть.
Экспериментальным путём удалось выяснить, что не конектится оно к сети только после засыпания/просыпания. Т.е. если ноут уснул в сети A, то после того как он проснётся, назад, к ней же он уже не приконектится
Прошу прощения, в постах выше я писал, что ничего не помогает, даже перезагрузка сервиса (юнита). Так вот, я ошибался. Оно нормально работает. Просто у меня видимо терпения не хватало дождаться. В общем:
 sudo systemctl restart [email protected]
помогает после выхода из сна ноутбука.. Но нельзя ли этого не делать в ручную, каждый раз?
Можно. У мну, например, такой скриптик имеется:
/usr/lib/systemd/system-sleep/netsleep.sh
—————————
#!/bin/sh
case $1/$2 in
  pre/*)
    systemctl stop timnet.service
    rmmod sundance
    ;;
  post/*)
    modprobe sundance
    sleep 2
    systemctl start timnet.service
    ;;
esac
Да и в вики было. )
Спасибо большое
Ктонить может посказать что не так? Мост не поднимается после выхода из хибернейта. Приходится вручную перезапускать.
Хинт из вики не помогает. надо попробовать задержку ввести.
cat /etc/systemd/system/root-resume.service
[Unit]
Description=User resume actions
After=suspend.target

[Service]
#User=%I
Type=simple
#ExecStartPre=/usr/local/bin/ssh-connect.sh
#ExecStart=/usr/bin/mysql -e 'slave start'
ExecStart=/usr/bin/netctl restart bridge
[Install]
WantedBy=suspend.target
Вот так вроде отрабатывает.
cat /etc/systemd/system/root-resume.service
[Unit]
Description=User resume actions
After=suspend.target

[Service]
Type=oneshot
ExecStart=/usr/bin/sh -c 'sleep 10'
ExecStart=/usr/bin/netctl restart bridge
[Install]
WantedBy=suspend.target
 
Зарегистрироваться или войдите чтобы оставить сообщение.