Беспроводная связь может быть включена или отключена с помощью инструмента rfkill. Вот решение на его основе, которое позволит сохранить состояние и восстановить его при запуске системы.
Шаг 00: создание файла для сохранения состояния Wi-Fi
cd /usr/local/etc
sudo touch .wifistate
sudo chmod 666 .wifistate
Шаг 01: скрипт
#!/bin/bash
IFACE="wlan1"
STATE_FILE="/usr/local/etc/.wifistate"
STATE="$(iwconfig $IFACE | grep Tx | cut -d '=' -f2 | grep off)"
if [ "$STATE" ]
then
rfkill unblock wifi &&
echo 1 > "$STATE_FILE" &&
echo "Wireless enabled"
else
rfkill block wifi &&
echo 0 > "$STATE_FILE" &&
echo "Wireless disabled"
fi
exit 0;
Шаг 10: сделать исполняемый скрипт
chmod +x <script name>
Шаг 11: изменение скрипта запуска Ubuntu
откройте /etc/rc.local
в любом текстовом редакторе (должен быть отредактирован как root) и добавьте следующий код
перед exit 0;
строкой:
FILE="/usr/local/etc/.wifistate"
if [ -r "$FILE" ]
then
if [ $(cat $FILE) -eq 0 ]
then
rfkill block wifi
fi
else
rfkill block wifi
fi
Готово, теперь скрипт из шага 01 может быть связан с событием клавиатуры. После первого использования он запишет 0 или 1 в файл .wifistate, и при запуске системы скрипт rc.local попытается прочитать это значение и, если оно равно 0, отключит Wi-Fi.
Если файл .wifistate не существует, по умолчанию Wi-Fi будет отключен при запуске.
sudo ifdown wlan0
по прибытииrc.local
не будет влиять на систему , так или иначе , даже после перезагрузки? Нужно ли как-то вызывать этот скрипт?