Không dây có thể được bật hoặc tắt bằng công cụ rfkill. Đây là giải pháp dựa trên nó, sẽ cho phép lưu trạng thái và khôi phục nó khi khởi động hệ thống.
Bước 00: tạo tập tin để lưu trữ trạng thái wifi
cd /usr/local/etc
sudo touch .wifistate
sudo chmod 666 .wifistate
Bước 01: kịch bản
#!/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;
Bước 10: làm cho tập lệnh thực thi
chmod +x <script name>
Bước 11: sửa đổi tập lệnh khởi động Ubuntu
mở /etc/rc.local
trong bất kỳ trình soạn thảo văn bản nào (phải được chỉnh sửa dưới dạng root) và thêm mã sau vào
trước exit 0;
dòng:
FILE="/usr/local/etc/.wifistate"
if [ -r "$FILE" ]
then
if [ $(cat $FILE) -eq 0 ]
then
rfkill block wifi
fi
else
rfkill block wifi
fi
Xong, bây giờ tập lệnh từ bước 01 có thể được liên kết với sự kiện bàn phím. Sau lần sử dụng đầu tiên, nó sẽ ghi 0 hoặc 1 vào tệp .wifistate và trên hệ thống khởi động, tập lệnh RC.local sẽ cố gắng đọc giá trị này và nếu là 0, hãy tắt wifi.
Nếu tệp .wifistate không tồn tại, theo mặc định, wifi sẽ bị tắt khi khởi động.
sudo ifdown wlan0
trongrc.local
sẽ không ảnh hưởng đến hệ thống dù sao đi nữa ngay cả sau khi khởi động lại? Tôi có cần phải gọi kịch bản này bằng cách nào đó?