1
0
mirror of https://github.com/billz/raspap-webgui.git synced 2023-10-10 13:37:24 +02:00
raspap-webgui/installers/servicestart.sh

66 lines
1.5 KiB
Bash
Raw Normal View History

2019-03-06 20:14:04 +01:00
#!/bin/bash
# When wireless client AP mode is enabled, this script handles starting
# up network services in a specific order and timing to avoid race conditions.
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=raspap
DESC="Service control for RaspAP"
CONFIGFILE="/etc/raspap/hostapd.ini"
positional=()
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-i|--interface)
interface="$2"
shift # past argument
shift # past value
;;
-s|--seconds)
seconds="$2"
shift # past argument
shift # past value
;;
esac
done
set -- "${positional[@]}"
2019-03-06 20:14:04 +01:00
echo "Stopping network services..."
systemctl stop hostapd.service
systemctl stop dnsmasq.service
systemctl stop dhcpcd.service
if [ -r "$CONFIGFILE" ]; then
declare -A config
2019-05-01 00:19:34 +02:00
while IFS=" = " read -r key value; do
config["$key"]="$value"
2019-05-01 00:19:34 +02:00
done < "$CONFIGFILE"
2019-05-01 00:19:34 +02:00
if [ "${config[WifiAPEnable]}" = 1 ]; then
if [ "${interface}" = "uap0" ]; then
echo "Removing uap0 interface..."
iw dev uap0 del
2019-03-06 20:14:04 +01:00
echo "Adding uap0 interface to ${config[WifiManaged]}"
2019-05-01 00:19:34 +02:00
iw dev ${config[WifiManaged]} interface add uap0 type __ap
# Bring up uap0 interface
ifconfig uap0 up
fi
2019-04-19 13:35:03 +02:00
fi
fi
2019-03-06 20:14:04 +01:00
# Start services, mitigating race conditions
echo "Starting network services..."
2019-03-06 20:14:04 +01:00
systemctl start hostapd.service
sleep "${seconds}"
2019-03-06 20:14:04 +01:00
systemctl start dhcpcd.service
sleep "${seconds}"
2019-03-06 20:14:04 +01:00
systemctl start dnsmasq.service
2019-03-07 23:14:27 +01:00
echo "RaspAP service start DONE"
2019-03-06 20:14:04 +01:00