Ubuntu – Automatically reconnect wireless connection

wireless

The wireless connection in my house unfortunately often disappears, requiring a wireless router reboot.

Making this worse is that my ubuntu media pc, does not automatically reconnect to the wireless network when it's been gone, and then comes up about a minute later. The network in question is setup as "connect automatically" in the network settings.

If I manually select my wireless network, using the wireless icon in the topright of my screen, everything works fine, until the next time that wireless goes down.

I'm looking for a way so I don't have to remember to do this manually all the time.

Best Answer

This seems to be posted all over the net with no good solutions. I guess the best fix/workaround is to make it check for internet connectivity and if it is not there then reconnect. I did this via a ping test to google.com and then I simply made it restart networking. Code is not tested (the restart part and the cron part, if statement tested), so I'll just wait for it to disconnect at some point. I have an Ubuntu Server 12.10, so no GUI, and is a pain to connect monitor and keyboard every time the wireless stuffs up.

Cron part done via webmin so Idk much about it. Script is as follows:

# edited by dim_voly for networking restart on no pingback every 5 mins

#!/bin/bash
# Name of File: networkingCron
# Purpose: to check if the internet is up (via ping test to google) and if not, restart networking service
# this script is invoked via cron, ideally every 5 mins.

#check if there is internet via ping test
if ! [ "`ping -c 1 google.com`" ]; then #if ping exits nonzero...
   sudo service networking restart #restart the whole thing
   echo Networking service restarted due to no ping response from google.com
fi

echo Script 'networkingCron' completed, if no message above then there was no network restart.

# dunno how to restart the wifi only since that is the only active connection that server uses.

# also I don't think those echos go anywhere

Make sure to run as root and make sure the script has execute (u+x) permissions.

links: