#!/bin/sh # # /etc/rc.d/wlan: start/stop wireless interface # # Connection type: "DHCP" or "static" #TYPE="DHCP" TYPE="static" DEV=wlp7s0 SSD=/sbin/start-stop-daemon PROG_DHCP=/sbin/dhcpcd PROG_WIFI=/usr/sbin/wpa_supplicant PID_DHCP=/var/run/dhcpcd.pid PID_WIFI=/var/run/wpa_supplicant.pid OPTS_DHCP="--waitip -h $(/bin/hostname) -z $DEV" OPTS_WIFI="-B -P $PID_WIFI -D nl80211,wext -c /etc/wpa_supplicant.conf -i $DEV" ADDR=192.168.1.67 MASK=24 GW=192.168.1.254 print_status() { $SSD --status --pidfile $2 case $? in 0) echo "$1 is running with pid $(cat $2)" ;; 1) echo "$1 is not running but the pid file $2 exists" ;; 3) echo "$1 is not running" ;; 4) echo "Unable to determine the program status" ;; esac } case $1 in start) if [ "${TYPE}" = "DHCP" ]; then $SSD --start --pidfile $PID_WIFI --exec $PROG_WIFI -- $OPTS_WIFI && \ $SSD --start --pidfile $PID_DHCP --exec $PROG_DHCP -- $OPTS_DHCP RETVAL=$? else /sbin/ip link set ${DEV} up $SSD --start --pidfile $PID_WIFI --exec $PROG_WIFI -- $OPTS_WIFI RETVAL=$? /sbin/ip addr add ${ADDR}/${MASK} dev ${DEV} broadcast + /sbin/ip route add default via ${GW} fi ;; stop) if [ "${TYPE}" = "DHCP" ]; then ( $SSD --stop --retry 10 --pidfile $PID_DHCP $SSD --stop --retry 10 --pidfile $PID_WIFI ) RETVAL=$? else $SSD --stop --retry 10 --pidfile $PID_WIFI RETVAL=$? /sbin/ip link set ${DEV} down /sbin/ip route del default /sbin/ip addr del ${ADDR}/${MASK} dev ${DEV} fi ;; restart) $0 stop $0 start ;; status) print_status $PROG_WIFI $PID_WIFI print_status $PROG_DHCP $PID_DHCP ;; *) echo "Usage: $0 [start|stop|restart|status]" ;; esac exit $RETVAL # End of file