сервис systemd работает на подключении беспроводной сети

У меня есть сервер, который пытается соединиться с мобильным AP, которое только иногда доступно. Это AP является камерой с изображениями, которые должны быть загружены так очень второе подключения сервера к этому конкретному AP, мне нужен он для запущения скрипта загрузки (который я уже записал).

Я знаю, что мог сделать некоторый очень грязный опрос, но там, что-нибудь как udev образует мост в systemd? Весь мой поиск поднимает очень общий сетевой материал, который не вполне применяется. Это - сторона сценариев вещей, которая является ключевой здесь.

Спустя секунды после регистрации этого происходит, что это не должен быть systemd, если мы должны сделать это только через network-manager (который управляет подключением Wi-Fi), затем пусть будет так... Но это для 15,10 в целях, развертываются на 16,04, и я в настоящее время делаю это с Выскочкой на 14,04 так... Мне нравятся любые работы, но я также как аккуратный и опрятное.

4
задан 31 January 2016 в 00:53

1 ответ

Можно использовать сценарий диспетчера Администратора сети для сцепления с интерфейсом вверх и вниз по событиям.

sudo touch /etc/NetworkManager/dispatcher.d/00do_stuff
sudo chmod u+x /etc/NetworkManager/dispatcher.d/00do_stuff

сценарий мог пойти что-то вдоль этих строк:

#!/bin/sh
if [ $1 = wlp3s0f0 -a $2 = up -a $CONNECTION_ID = wlan ]; then
    # do stuff
fi

man networkmanager объясняет, что, если сценарий диспетчера работает слишком долго, сценарий уничтожается в какой-то момент, поэтому если это - возможность, лучше разветвить другой сценарий для выполнения задачи:

#!/bin/sh
if [ $1 = wlp3s0f0 -a $2 = up -a $CONNECTION_ID = wlan ]; then
    (/home/user/scripts/do_stuff.sh) & disown
fi

Администратор сети запускает все скрипты в /etc/NetworkManager/dispatcher.d в алфавитном порядке каждый раз, когда определенные события инициированы, передав интерфейс и событие как аргументы.

$CONNECTION_ID сделан доступным для сценария через среду, и в этом случае это проверяется, чтобы удостовериться, что мы подключены к использованию правильного профиля подключения, как сообщается man networkprofile (Не уверенный точно, какие последствия это имеет. В моем случае это хорошо работает, если бы я проверяю $CONNECTION_ID по своему SSID, но я не уверен, что произошло бы, если бы это, оказалось, соответствовало названию другого профиля проводного соединения).

3
ответ дан 1 December 2019 в 10:03

Другие вопросы по тегам:

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