Бездротовий зв’язок можна включити або вимкнути за допомогою інструмента rfkill. Ось на його базі рішення, яке дозволить зберегти стан та відновити його при запуску системи.
Крок 00: створення файлу для зберігання стану wifi
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, відключить wifi.
Якщо .wifistate файла не існує, за замовчуванням wifi буде відключений при запуску.
sudo ifdown wlan0після прибуттяrc.localне впливатиме на систему , так чи інакше , навіть після перезавантаження? Чи потрібно якось називати цей сценарій?