0

Is there a way to restart the Network manager every time I check the "Enable Wi-fi" from the applet's dropdown menu?

2
  • 1
    Well , technically there is a command, but requires sudo. Why exactly do you need to restart it ? What's the underlying issue ? Oct 6, 2016 at 1:07
  • I've noticed that if I disable and then re-enable wifi from the dropdown menu the applet will display the wrong type of connection (usually ethernet, or sometimes nothing at all), thus preventing me from seeing what hotspots are available; restarting the network manager solves the issue though.
    – user525303
    Oct 6, 2016 at 1:58

3 Answers 3

3

I know this is an old thread, but on my older laptop I had a pretty crappy WiFi card which had a tendency to disconnect from the WiFi if there was a lot of load (e.g., downloading large files, etc.).

I ended up creating a simple script to check if my internet was still connected, and if it wasn't, then restart the network manager.

#!/bin/bash

ping -c 1 8.8.8.8
received=$?
echo $received
if [[ $received -ne 0 ]] ; then
    service network-manager restart
fi

I created a root cronjob with sudo crontab -e, and set it such that every minute (you can do it more less frequently, but the script is a simple ping so it isn't resource intensive) it would run the script.

So, if my WiFi did go out for some reason, it would only ever be out for about a minute at a time, tops. If you're unfamiliar with cron, I recommend reading this

2
  • 1
    Welcome to Ask Ubuntu and although it's an old thread, it's better than the other answers, so +1 for that. OTOH, if you want to point people to cron help, better send them on this site, so I've edited that.
    – Fabby
    Jun 12, 2018 at 17:43
  • I had to write /usr/sbin/service instead of service. Also, the crontab expression you're looking for is */1 * * * * /home/your_user/restart_network_if_needed.sh assuming that's where you copy-pasted the above script
    – ihadanny
    Dec 17, 2018 at 6:05
2

in a terminal (Ctrl-Alt-t), sudo systemctl restart NetworkManager should do the trick.

However, you can split it into stop and start command

sudo systemctl stop NetworkManager
sudo systemctl start NetworkManager
2

press alt+f2 to get a run dialog

in the run dialog type:

systemctl network-manager restart 

You should then provide your password when prompted.

1
  • Thank you for your answer. Is there a way, however, to automate the process, for example through a script?
    – user525303
    Oct 8, 2016 at 4:01

You must log in to answer this question.