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

Paramaterized service start, handles both uap0 and default

This commit is contained in:
billz 2019-03-07 10:17:16 +00:00
parent a2829dcf78
commit 47a2b7c346

56
installers/servicestart.sh Normal file → Executable file
View File

@ -1,39 +1,61 @@
#!/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.
# When wireless client AP mode is enabled, this script handles starting up network services in a specific order and timing to avoid race conditions.
# Todo: update /etc/rc.local script with /bin/bash /etc/raspap/hostapd/servicestart.sh to enable at system startup
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=raspap
DESC="Service control for RaspAP"
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[@]}"
echo "Stopping network services..."
systemctl stop hostapd.service
systemctl stop dnsmasq.service
systemctl stop dhcpcd.service
echo "Removing uap0 interface..."
iw dev uap0 del
if [ "${interface}" = "uap0" ]; then
echo "Removing uap0 interface..."
iw dev uap0 del
echo "Adding uap0 interface..."
iw dev wlan0 interface add uap0 type __ap
echo "Adding uap0 interface..."
iw dev wlan0 interface add uap0 type __ap
# Add iptables rules (todo: persist to /etc/rc.local as with default rules)
echo "IPV4 forwarding: setting..."
sysctl net.ipv4.ip_forward=1
echo "Editing IP tables..."
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 ! -d 192.168.50.0/24 -j MASQUERADE
# Bring up uap0 interface
ifconfig uap0 up
# Bring up uap0 interface
ifconfig uap0 up
else
echo "Removing uap0 interface..."
iw dev uap0 del
fi
# Start services, mitigating race conditions
echo "Starting hostapd service..."
systemctl start hostapd.service
sleep 5
sleep "${seconds}"
echo "Starting dhcpcd service..."
systemctl start dhcpcd.service
sleep 5
sleep "${seconds}"
echo "Starting dnsmasq service..."
systemctl start dnsmasq.service
echo "servicestart DONE"
echo "RaspAP servicestart DONE"