Riateche
@Riateche

Программно определить, когда Network Manager подключается к сети

Хочется добавить браузер в автозагрузку, но так, чтобы он не открывался, если я не дома (нет подключения по wi-fi). Насколько я знаю, nm предоставляет подобную функциональность. Например, pidgin при отсутствии подключения в nm не пытается подключиться, а просто ждет подключения. Хочется написать скрипт, который минуту ждет подключения и запускает браузер, если подключение происходит. Куда копать?

ОС — Ubuntu 11.04.
  • Вопрос задан
  • 2682 просмотра
Пригласить эксперта
Ответы на вопрос 4
Eol
@Eol
Копайте в сторону DBus и соответственно интерфейса NetworkManager'а для него.
Ответ написан
Комментировать
m08pvv
@m08pvv
Как вариант — добавить в /etc/NetworkManager/dispatcher.d/ скрипт
Например,

#!/bin/bash

# первый параметр скрипта - интерфейс
IF=$1

# второй параметр скрипта - состояние (up/down/pre-up/post-down)
STATUS=$2

# Если интерфейс тот, который мне нужен и он поднялся, то проверяем дальше
if [ "$IF" = "wlan0" ] && [ "$STATUS" = "up" ];
then
# Если мы подключились к своей точке (00:1E:58:FF:AF:FA)
iwconfig "wlan0" | grep "00:1E:58:FF:AF:FA" > /dev/null
if [ $? == "0" ];
then
# То выполняем запуск гуглохрома от имени юзера user
env DISPLAY=:0.0 su user -l -c google-chrome &
exit $?
fi
fi


Только вот я не до конца понял баги с переменными окружения…
Ответ написан
Комментировать
namespace
@namespace
Разработчик C++/Python
Мой тебе совет: копай в сторону Qt. А там уже все и ясно будет).
Ответ написан
Комментировать
@ComodoHacker
А может просто
iwconfig wlan0 |grep --quiet <SID> && firefox
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы