stop-wifi.sh 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/bin/sh
  2. if pidof wpa_supplicant hostapd valgrind.bin > /dev/null; then
  3. RUNNING=yes
  4. else
  5. RUNNING=no
  6. fi
  7. sudo killall -q hostapd
  8. sudo killall -q wpa_supplicant
  9. for i in `pidof valgrind.bin`; do
  10. if ps $i | grep -q -E "wpa_supplicant|hostapd"; then
  11. sudo kill $i
  12. fi
  13. done
  14. sudo killall -q wlantest
  15. sudo killall -q tcpdump
  16. if grep -q hwsim0 /proc/net/dev; then
  17. sudo ifconfig hwsim0 down
  18. fi
  19. if [ "$RUNNING" = "yes" ]; then
  20. # give some time for hostapd and wpa_supplicant to complete deinit
  21. sleep 0.5
  22. for i in `seq 1 5`; do
  23. if pidof wpa_supplicant hostapd valgrind.bin > /dev/null; then
  24. echo "Waiting for processes to exit (1)"
  25. sleep 1
  26. else
  27. break
  28. fi
  29. done
  30. fi
  31. if pidof wpa_supplicant hostapd > /dev/null; then
  32. echo "wpa_supplicant/hostapd did not exit - try to force them to die"
  33. sudo killall -9 -q hostapd
  34. sudo killall -9 -q wpa_supplicant
  35. for i in `seq 1 5`; do
  36. if pidof wpa_supplicant hostapd > /dev/null; then
  37. echo "Waiting for processes to exit (2)"
  38. sleep 1
  39. else
  40. break
  41. fi
  42. done
  43. fi
  44. for i in `pidof valgrind.bin`; do
  45. if ps $i | grep -q -E "wpa_supplicant|hostapd"; then
  46. echo "wpa_supplicant/hostapd(valgrind) did not exit - try to force it to die"
  47. sudo kill -9 $i
  48. fi
  49. done
  50. for i in /tmp/wpas-wlan0 /tmp/wpas-wlan1 /tmp/wpas-wlan2 /var/run/hostapd-global; do
  51. if [ -e $i ]; then
  52. echo "Waiting for ctrl_iface $i to disappear"
  53. sleep 1
  54. if [ -e $i ]; then
  55. echo "Control interface file $i exists - remove it"
  56. sudo rm $i
  57. fi
  58. fi
  59. done
  60. if grep -q mac80211_hwsim /proc/modules ; then
  61. sudo rmmod mac80211_hwsim
  62. # wait at the end to avoid issues starting something new immediately after
  63. # this script returns
  64. sleep 1
  65. fi