11

I think this started happening a couple of months ago when I upgraded from 10.04 to 12.04.

Whenever I reboot, network-manager does not start. I have to manually run sudo start network-manager, and then everything works fine.

Things I have already tried (rebooting after each attempted fix):

  • Verified that all of the /etc/rc*.d/*network-manager links exist the way they should.
  • Since network-manager's upstart config file mentions local-filesystems, and my fstab had a reference to a USB HDD that is not connected, I commented that line out of the fstab.
  • sudo dpkg-reconfigure network-manager and then sudo apt-get install --reinstall network-manager
  • Looked in syslog for hints, didn't see anything that jumped out.

I don't think I've modified /etc/init/network-manager.conf, but here it is for reference:

# network-manager - network connection manager
#
# The Network Manager daemon manages the system's network connections,
# automatically switching between the best available.

description "network connection manager"

start on (local-filesystems
      and started dbus
      and static-network-up)
stop on stopping dbus

expect fork
respawn

script
    # set $LANG so that messages appearing on the GUI will be translated. See LP: 875017
    if [ -r /etc/default/locale ]; then
        . /etc/default/locale
        export LANG LANGUAGE LC_MESSAGES LC_ALL
    fi

    exec NetworkManager
end script

8 Answers 8

15

The 'start on' section lets you know which events need to be emitted before upstart will start network-manager.

In this case it's:

  • local-filesystems
  • dbus
  • static-network-up

Odds are the first two have already been emitted if you have booted to a desktop.

static-network-up is emitted by the /etc/network/if-up.d/upstart script, crucially, the event will not be emitted unless every interface configured as 'auto' in /etc/network/interfaces is up.

In my case I had a left over entry for eth0 in /etc/network/interfaces which was configured to use DHCP, but since there was no ethernet plugged into eth0 DHCP could never succeed.

You can tell upstart to emit events and can use this to check if it is the static-network-up event that's missing.

  • Reboot your computer and don't start network-manager
  • man initctl (you need to run the emit command with sudo so it's no harm to run man initctl to verify commands posted on the internet first)
  • sudo initctl emit static-network-up (you might need to Ctrl+C this after a while)
  • initctl status network-manager (to check if it started)

If this solves your problem check /etc/network/interfaces, comment out everything other than:

auto lo
iface lo inet loopback

Then reboot and hopefully network-manager will start as expected.

2
  • You're dead right, this is stupid idiotic behaviour from NetworkManager deciding not to start up because something other than lo is in that file, even if it leaves WIFI completely unconfigured! Jun 13, 2015 at 9:06
  • worked for me, pretty magical :P
    – boh
    Jun 16, 2016 at 12:00
8

On my Arch Linux, I needed to run following command and now NetworkManager starts up automatically:

systemctl enable NetworkManager

This enables the NetworkManager to be run at startup. This is what I understand.

1
  • Thanks, this solved my problem. Was failing after update + crash before reboot. Mint 19.1 Apr 30, 2019 at 8:09
4

Had the same problem but none of the proposed solutions (including some from other forums) helped.

Anyway, after reading Gordon's reply, I simply deleted the and static-network-up line from /etc/init/network-manager.conf . It worked.

3
  • I guess the problem here is that static-network-up should be fired, but isn't. Do you see a bootup-message "waiting for network configuration"?
    – Andy
    Nov 21, 2014 at 17:32
  • @Andy, If he's on wireless, he has no static interface. If he has auth eth0 in his interfaces, it'll wait for several minutes, fail, and never fire the event.
    – Cerin
    Jul 25, 2015 at 22:01
  • I guess you mean auto eth0? While waiting for several minutes it will say "waiting for network configuration", that's why I asked.
    – Andy
    Jul 27, 2015 at 14:04
2

I had the same problem after switching my thinkpad while reusing the old disk. It still remembered the old MAC addresses. I had to remove them manually in /etc/udev/rules.d/70-persistent-net.rules which fixed the problem for me.

0

Same here on 12.04 - I did:

sudo -s
mv /etc/udev/rules.d/70-persistent-net.rules ~/
touch /etc/udev/rules.d/70-persistent-net.rules
reboot

Fixed!

You could also manually edit that file and correct the mac addresses...

0

From the README on /etc/udev/rules.d:

The files in this directory are read by udev(7) and used when events are performed by the kernel. The udev daemon watches this directory with inotify so that changes to these files are automatically picked up, for this reason they must be files and not symlinks to another location as in the case in Debian.

further:

Write your own rules in this directory that assign the name, symlinks, permissions, etc. that you want. Pick a number higher than the rules you want to override, and yours will be used.

so please, do not, as described in @epek answer, copy/ paste files, but just add another file there with a higher integer at the beginning at the filename. For e.g.

// Ubuntu core:
70-persistent-net.rules
// Custom overrides and/or additions:
80-persistent-net.rules
0

for ubuntu 14.04 got home-hit "startup applications" hit add name-networks cmd-sudo service network-manager restart commant- - [its work only valid network settings like ips,dns,gateway etc]

0

An easy workaround is to edit /etc/rc.local in order to boot the NetworkManager every time you boot your computer. This doesn't really solve the root problem, but it made things functional and simple for me.

First, execute this command:

sudo vim /etc/rc.local

Then, the content should look similar to this:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

#Sleeping a little might be necessary to let it catch up the boot. 
#However, for me, this sleep was a useless overhead.
#sleep 3 
service network-manager restart

exit 0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .