#!/bin/bash # Begin services/wpa # Origianlly based upon lfs-bootscripts-1.12 $NETWORK_DEVICES/if{down,up} # Written by Armin K. # Call with: IFCONFIG= /lib/services/wpa #$LastChangedBy: bdubbs $ #$Date: 2016-09-02 23:10:02 -0500 (Fri, 02 Sep 2016) $ . /lib/lsb/init-functions . $IFCONFIG CFGFILE=/etc/sysconfig/wpa_supplicant-${IFCONFIG##*.}.conf PIDFILE=/run/wpa_supplicant/$1.pid CONTROL_IFACE=/run/wpa_supplicant/$1 case "$2" in up) if [ -e ${PIDFILE} ]; then ps $(cat ${PIDFILE}) | grep wpa_supplicant >/dev/null if [ "$?" = "0" ]; then log_warning_msg "\n wpa_supplicant already running on $1." exit 0 else rm ${PIDFILE} fi fi if [ ! -e ${CFGFILE} ]; then log_info_msg "\n wpa_supplicant configuration file ${CFGFILE} not present" log_failure_msg2 exit 1 fi # Only specify -C on command line if it is not in CFGFILE if ! grep -q ctrl_interface ${CFGFILE}; then WPA_ARGS="-C/run/wpa_supplicant ${WPA_ARGS}" fi log_info_msg "\n Starting wpa_supplicant on the $1 interface..." mkdir -p /run/wpa_supplicant /sbin/wpa_supplicant -q -B -Dnl80211,wext -P${PIDFILE} \ -c${CFGFILE} -i$1 ${WPA_ARGS} if [ "$?" != "0" ]; then log_failure_msg2 exit 1 fi log_success_msg2 if [ -n "${WPA_SERVICE}" ]; then if [ ! -e /lib/services/${WPA_SERVICE} -a \ ! -x /lib/services/${WPA_SERVICE} ]; then log_info_msg "\n Cannot start ${WPA_SERVICE} on $1" log_failure_msg2 exit 1 fi IFCONFIG=${IFCONFIG} /lib/services/${WPA_SERVICE} $1 up fi ;; down) if [ -n "${WPA_SERVICE}" ]; then if [ ! -e /lib/services/${WPA_SERVICE} -a ! -x /lib/services/${WPA_SERVICE} ]; then log_warning_msg "\n Cannot stop ${WPA_SERVICE} on $1" else IFCONFIG=${IFCONFIG} /lib/services/${WPA_SERVICE} $1 down fi fi log_info_msg "\n Stopping wpa_supplicant on the $1 interface..." if [ -e ${PIDFILE} ]; then kill -9 $(cat ${PIDFILE}) rm -f ${PIDFILE} ${CONTROL_IFACE} evaluate_retval else log_warning_msg "\n wpa_supplicant already stopped on $1" exit 0 fi ;; *) echo "Usage: $0 [interface] {up|down}" exit 1 ;; esac # End services/wpa