Perché il gestore di rete non si avvia all'avvio?


10

Penso che questo abbia avuto inizio un paio di mesi fa quando sono passato dall'10.04 al 12.04.

Ogni volta che riavvio, il gestore della rete non si avvia. Devo eseguire manualmente sudo start network-manager, e quindi tutto funziona bene.

Cose che ho già provato (riavvio dopo ogni tentativo di correzione):

  • Verificato che tutti i collegamenti /etc/rc*.d/*network-manager esistono come dovrebbero.
  • Poiché il file di configurazione upstart del gestore di rete menziona local-filesystemse il mio fstab aveva un riferimento a un HDD USB che non è collegato, ho commentato quella linea fuori dal fstab.
  • sudo dpkg-reconfigure network-manager e poi sudo apt-get install --reinstall network-manager
  • Ho cercato suggerimenti nel syslog, non ho visto nulla che fosse saltato fuori.

Non credo di aver modificato /etc/init/network-manager.conf, ma qui è per riferimento:

# 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

Risposte:


15

La sezione 'start on' ti consente di sapere quali eventi devono essere emessi prima che upstart avvii il gestore di rete.

In questo caso è:

  • locali-filesystem
  • dbus
  • static-network-up

Le probabilità sono le prime due già emesse se si è avviato su un desktop.

static-network-up viene emesso /etc/network/if-up.d/upstart scriptdall'evento cruciale, non verrà emesso a meno che non sia attiva ogni interfaccia configurata come 'auto' in /etc/network/interfaces.

Nel mio caso avevo una voce rimanente per eth0 in /etc/network/interfacescui era configurato per utilizzare DHCP, ma poiché non era presente alcun Ethernet collegato a eth0 DHCP non sarebbe mai riuscito.

Puoi dire a upstart di emettere eventi e puoi usarlo per controllare se manca l'evento di rete statica.

  • Riavvia il computer e non avviare il gestore di rete
  • man initctl(devi eseguire il comando emit con sudo, quindi non è dannoso eseguire man initctlper verificare prima i comandi pubblicati su Internet)
  • sudo initctl emit static-network-up(potrebbe essere necessario Ctrl+ Cquesto dopo un po ')
  • initctl status network-manager (per verificare se è iniziato)

Se questo risolve il problema /etc/network/interfaces, controlla tutto tranne che:

auto lo
iface lo inet loopback

Quindi riavviare e si spera che il gestore della rete inizi come previsto.


Hai perfettamente ragione, questo è un comportamento stupido idiota di NetworkManager che decide di non avviarsi perché qualcosa di diverso da quello lonel file, anche se lascia WIFI completamente non configurato!
Forbesmyester,

ha funzionato per me, piuttosto magico: P
boh

5

Sul mio Arch Linux, dovevo eseguire il comando seguente e ora si NetworkManageravvia automaticamente:

systemctl enable NetworkManager

Ciò consente NetworkManagerdi essere eseguito all'avvio. Questo è quello che capisco.


Grazie, questo ha risolto il mio problema. Errore dopo l'aggiornamento + arresto anomalo prima del riavvio. Menta 19.1
Toni Homedes i Saun

4

Aveva lo stesso problema, ma nessuna delle soluzioni proposte (incluse alcune di altri forum) ha aiutato.

Comunque, dopo aver letto la risposta di Gordon , ho semplicemente cancellato la and static-network-upriga da /etc/init/network-manager.conf. Ha funzionato.


Immagino che il problema qui sia che la rete statica dovrebbe essere attivata, ma non lo è. Viene visualizzato un messaggio di avvio "in attesa della configurazione di rete"?
Andy,

@Andy, se è in modalità wireless, non ha un'interfaccia statica. Se ha auth eth0nelle sue interfacce, aspetterà diversi minuti, fallirà e non lancerà mai l'evento.
Cerin,

Immagino che intendi auto eth0? Durante l'attesa di alcuni minuti, verrà visualizzato il messaggio "In attesa della configurazione di rete", ecco perché l'ho chiesto.
Andy,

2

Ho avuto lo stesso problema dopo aver cambiato il mio thinkpad mentre riusavo il vecchio disco. Ricordava ancora i vecchi indirizzi MAC. Ho dovuto rimuoverli manualmente in /etc/udev/rules.d/70-persistent-net.rules che ha risolto il problema per me.


0

Lo stesso qui il 12.04 - Ho fatto:

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

Fisso!

Puoi anche modificare manualmente quel file e correggere gli indirizzi mac ...


0

Da READMEsopra /etc/udev/rules.d:

I file in questa directory vengono letti da udev (7) e utilizzati quando gli eventi vengono eseguiti dal kernel. Il demone udev controlla questa directory con inotify in modo che le modifiche a questi file vengano automaticamente raccolte , per questo motivo devono essere file e non collegamenti simbolici a un'altra posizione come nel caso di Debian.

ulteriore:

Scrivi le tue regole in questa directory che assegna il nome, i collegamenti simbolici, le autorizzazioni, ecc. Che desideri. Scegli un numero superiore alle regole che desideri ignorare e il tuo verrà utilizzato.

quindi, per favore, non , come descritto nella risposta @epek , copiare / incollare i file, ma semplicemente aggiungere un altro file lì con un numero intero più alto all'inizio nel nome del file. Per es

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

0

per Ubuntu 14.04 ha ottenuto "applicazioni di avvio" di successo hit aggiungi nome-reti cmd-sudo servizio riavviamento gestore di rete- - [funziona solo impostazioni di rete valide come ips, dns, gateway ecc]


0

Una soluzione semplice è modificare /etc/rc.local al fine di avviare NetworkManager ogni volta che si avvia il computer. Questo non risolve davvero il problema alla radice, ma ha reso le cose funzionali e semplici per me.

Innanzitutto, esegui questo comando:

sudo vim /etc/rc.local

Quindi, il contenuto dovrebbe essere simile al seguente:

#!/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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.