ไร้สายสามารถเปิดใช้งานหรือปิดการใช้งานโดยใช้เครื่องมือ 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
ในโปรแกรมแก้ไขข้อความใด ๆ (ต้องแก้ไขเป็นรูท) และเพิ่มรหัสต่อไปนี้
ก่อน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
นั้นจะไม่ส่งผลกระทบต่อระบบแม้หลังจากรีบูตเครื่องหรือไม่ ฉันจำเป็นต้องเรียกใช้สคริปต์นี้อย่างใดไหม