#!/bin/bash daemon_name=wpa_supplicant command_args="-Dwext -c/etc/wpa_supplicant.conf -B" . /etc/rc.conf . /etc/rc.d/functions #. /etc/conf.d/$daemon_name.conf get_pid() { pidof -o %PPID $daemon_name } find_wireless() { local iface= for iface in /sys/class/net/*; do if [ -e "$iface"/wireless -o -e "$iface"/phy80211 ]; then echo "${iface##*/}" fi done } append_wireless() { local iface= i= iface=$(find_wireless) if [ -n "$iface" ]; then for i in $iface; do command_args="$command_args -i$i" done else echo "Could not find a wireless interface" fi } case "$1" in start) stat_busy "Starting $daemon_name daemon" PID=$(get_pid) if [ -z "$PID" ]; then [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid # RUN case " $command_args" in *" -i"*) ;; *) append_wireless;; esac $daemon_name $command_args # if [ $? -gt 0 ]; then stat_fail exit 1 else echo $(get_pid) > /var/run/$daemon_name.pid add_daemon $daemon_name stat_done fi else stat_fail exit 1 fi ;; stop) stat_busy "Stopping $daemon_name daemon" PID=$(get_pid) # KILL [ ! -z "$PID" ] && kill $PID &> /dev/null # if [ $? -gt 0 ]; then stat_fail exit 1 else rm -f /var/run/$daemon_name.pid &> /dev/null rm_daemon $daemon_name stat_done fi ;; restart) $0 stop sleep 3 $0 start ;; status) stat_busy "Checking $daemon_name status"; ck_status $daemon_name ;; *) echo "usage: $0 {start|stop|restart|status}" esac exit 0