Jaka jest preferowana metoda ponownego uruchomienia sieci w Ubuntu i Debianie

37

Po ponownym uruchomieniu sieci za pomocą:

/etc/init.d/networking restart

Dostaję to ostrzeżenie:

 Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces

Więc jaki jest najlepszy sposób na ponowne uruchomienie sieci po wprowadzeniu zmian teraz?

Ten problem dotyczy także Debiana, ponieważ pakiet netbase jest dziedziczony z Debiana.

Antonius Bloch
źródło

Odpowiedzi:

27

To tylko mówi, że opcja restartu zniknie

/etc/init.d/networking stop; /etc/init.d/networking start

Uwaga: jest tylko jedna linia! Jest to ważne przy ponownym uruchomieniu sieci przez sieć.

Mikrofon
źródło
28
dwie komendy: - / zły pomysł, jeśli jesteś na odległość. Lepiej użyj jednej wkładki:/etc/init.d/networking stop; /etc/init.d/networking start
hmontoliu
@hmontoliu: znowu rozsądnie jest użyć przestarzałego restartu, ponieważ nie można zapomnieć o komendzie startowej
mbx
1
Jeśli jesteś na odległość, zawsze powinieneś używaćscreen
Avio
5
Ekran naprawdę nie pomoże, jeśli zamkniesz sieć na zdalnym serwerze. W takim przypadku musisz poszukać jakiegoś bezpośredniego dostępu, co nie zawsze jest wygodne.
metakermit
1
stopi startoczywiście nie są przestarzałe, ale stosowane w połączeniu mają ten sam potencjalny problem, który restartkiedyś miał.
Håkan Lindqvist
19

Uruchom komendę init.d bez parametrów, powie ci, jakie jest użycie:

~# /etc/init.d/networking 
Usage: /etc/init.d/networking {start|stop}

Wydaje się, że ponowne uruchomienie jest przestarzałe

Jest on przestarzały również w Debianie przynajmniej od:

netbase (4.38) unstable; urgency=low

  * Create /etc/sysctl.d/bindv6only.conf on upgrades and new installs
    to set net.ipv6.bindv6only=1.
  * Made the init script check for swap over the network. (Closes: #540697)
  * Temporarily depend on initscripts to work around a bug in multistrap.
    (Closes: #556399)
  * etc-services: added sieve (4190/tcp).
  * etc-services: removed sieve (2000/tcp). (Closes: #555664)
  * Made the init script warn that using the force-reload and restart
    parameters is not a good idea. (Closes: #550240)

 -- Marco d'Itri <[email protected]>  Sun, 06 Dec 2009 17:09:41 +0100

Powiązany błąd # 550240 tutaj

Co jest dość paskudne. Aby ponownie uruchomić Netwokring ze zdalnego, prawdopodobnie najlepszą i najbezpieczniejszą metodą będzie uruchomienie następującej sesji ekranowej :

~# /etc/init.d/networking stop; /etc/init.d/networking start

Od dzisiejszego networkingskryptu init restarti force-reloadbędzie działać w większości przypadków. Wydaje mi się, że można bezpiecznie zignorować ostrzeżenie i nadal używać restartu . Jednak wybiorę sposób stop + start :-)

case "$1" in
start)
    process_options

    log_action_begin_msg "Configuring network interfaces"
    if ifup -a; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

stop)
    check_network_file_systems
    check_network_swap

    log_action_begin_msg "Deconfiguring network interfaces"
    if ifdown -a --exclude=lo; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

force-reload|restart)
    process_options

    log_warning_msg "Running $0 $1 is deprecated because it may not enable again some interfaces"
    log_action_begin_msg "Reconfiguring network interfaces"
    ifdown -a --exclude=lo || true
    if ifup -a --exclude=lo; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

*)
    echo "Usage: /etc/init.d/networking {start|stop}"
    exit 1
    ;;
esac
hmontoliu
źródło
Naprawdę? Ponowne uruchomienie jest przydatne, gdy pracujesz zdalnie!
Antonius Bloch
2
Zobacz moją edycję. Zgadzam się, że ponowne uruchomienie kuloodporne byłoby lepsze niż stop + start
hmontoliu
Myślę, że warto zauważyć, że stop+ startwydaje się robić dokładnie to samo, co restartby zrobił. Nie wydaje się być bardziej bezpieczny, poza tym, że nie używa przestarzałej opcji (przestarzałe, aby zniechęcić do tej operacji).
Håkan Lindqvist
5

Używam nohup sh -c "/etc/init.d/networking stop; sleep 2; /etc/init.d/networking start". Dodam, sleep 2ponieważ myślę, że być może problemy z ponownym uruchomieniem miały coś wspólnego z opóźnieniami zależnymi od sprzętu, ale jest to niepotwierdzone i półprzypadkowa zasada, której wstydzę się nieco upublicznić. Możesz to pominąć, jeśli czujesz się racjonalny!

Eduardo Ivanec
źródło
więc w zasadzie mówisz, że muszę użyć aliasu restart = "nohup sh -c /etc/init.d/networking stop; sleep 2; /etc/init.d/networking start", ponieważ ktoś korzystający z Debiana myśli o swojej pracy będzie na linii, jeśli rzeczywiście ewoluujemy Linuksa poza najbardziej wymagający system operacyjny?
1
Ani trochę. Jak miło z twojej strony!
Eduardo Ivanec
3

Poniższe polecenie działa dobrze w środowisku serwerowym, bez wyświetlania ostrzeżeń. Realizuje żądanie zatrzymania i uruchomienia w usłudze sieciowej.

sudo service networking start
Erick
źródło
Wydaje się, że to nie koniec stop && start. W każdym razie nie dotyczyło mnie to w Debian Wheezy. Może robi to w innej dystrybucji.
mivk
Działa dobrze w Ubuntu
Erick
2

Co powiesz na nohup sh -c "ifdown -a && ifup -a"

Dazz
źródło
1

W Debian Wheezy

service networking restart

wydaje się robić to, czego się spodziewano i nie narzeka.

Wydaje mi się, że w Jessie z systemd znów może być inaczej.

mivk
źródło
Ze systemdto systemctl restart networkingIIRC, ale „stary” servicesposób nadal działa.
wb9688
0

Jeśli nie możesz znaleźć przyczyny ponownego uruchomienia sieci, zrób to w trybie szczegółowym screensesji:

ifdown -v --force eth0; ifup -v eth0
sanmai
źródło