เป็นวิธีที่ต้องการในการรีสตาร์ทเครือข่ายใน Ubuntu และ Debian


37

เมื่อฉันรีสตาร์ทเครือข่ายโดยใช้:

/etc/init.d/networking restart

ฉันได้รับคำเตือนนี้:

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

ดังนั้นวิธีที่ดีที่สุดในการรีสตาร์ทเครือข่ายหลังจากทำการเปลี่ยนแปลงคืออะไร

ปัญหานี้ยังนำไปใช้กับ Debian เนื่องจากแพ็คเกจ netbase นั้นสืบทอดมาจาก debian

คำตอบ:


27

เป็นเพียงการบอกว่าตัวเลือกการเริ่มต้นใหม่กำลังจะหายไป

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

โปรดทราบว่ามีหนึ่งบรรทัดเท่านั้น! สิ่งสำคัญคือเมื่อเรียกใช้เครือข่ายรีสตาร์ทผ่านเครือข่าย


28
สองคำสั่ง: - / ความคิดที่ดีถ้าคุณอยู่ในระยะไกล ควรใช้สายการบินที่ดีกว่า:/etc/init.d/networking stop; /etc/init.d/networking start
hmontoliu

@hmontoliu: อีกครั้งดูเหมือนว่าควรใช้การรีสตาร์ทที่คัดค้านเนื่องจากคุณไม่สามารถลืมคำสั่งเริ่มต้นได้
mbx

1
หากคุณอยู่ในระยะไกลคุณควรใช้screen
Avio

5
หน้าจอจะไม่ช่วยถ้าคุณปิดระบบเครือข่ายบนเซิร์ฟเวอร์ระยะไกล ในกรณีนี้คุณจะต้องค้นหาการเข้าถึงโดยตรงบางประเภทซึ่งไม่สะดวกเสมอไป
metakermit

1
stopและstartเห็นได้ชัดว่าไม่คัดค้าน แต่ใช้ร่วมกันพวกเขามีปัญหาที่อาจเกิดขึ้นเช่นเดียวกับที่restartเคยมี
Håkan Lindqvist

19

เรียกใช้คำสั่ง init.d โดยไม่มีพารามิเตอร์มันจะบอกคุณว่าการใช้งาน:

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

ดูเหมือนว่าการรีสตาร์ทจะถูกปฏิเสธ

มันเลิกในเดเบียนอย่างน้อยก็ตั้งแต่:

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 <md@linux.it>  Sun, 06 Dec 2009 17:09:41 +0100

ข้อผิดพลาดที่เกี่ยวข้อง # 550240 ที่นี่

ซึ่งค่อนข้างน่ารังเกียจ หากต้องการเริ่มต้น netwokring จากระยะไกลอาจเป็นวิธีที่ดีที่สุดและปลอดภัยที่สุดที่จะเรียกใช้ต่อไปนี้ภายในเซสชันหน้าจอ :

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

ในฐานะของnetworkingสคริปต์เริ่มต้นของวันนี้restartและforce-reloadจะทำงานในสถานการณ์ส่วนใหญ่ ผมคิดว่ามันปลอดภัยพอสมควรที่จะไม่สนใจคำเตือนและยังคงใช้การรีสตาร์ท อย่างไรก็ตามฉันจะไปกับจุดหยุด + เริ่มต้น :-)

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

จริงๆ? รีสตาร์ทมีประโยชน์เมื่อคุณทำงานจากระยะไกล!
Antonius Bloch

2
ดูการแก้ไขของฉัน ฉันยอมรับว่าการเริ่มระบบกันกระสุนใหม่จะดีกว่าการหยุด + เริ่ม
hmontoliu

ฉันคิดว่ามันน่าสังเกตว่าstop+ startดูเหมือนจะทำสิ่งเดียวกันกับที่restartทำ ดูเหมือนว่าจะไม่ปลอดภัยกว่าอย่างอื่นนอกจากที่ไม่ได้ใช้ตัวเลือกที่เลิกใช้แล้ว
Håkan Lindqvist

5

nohup sh -c "/etc/init.d/networking stop; sleep 2; /etc/init.d/networking start"ฉันใช้ ฉันเพิ่มsleep 2เพราะฉันคิดว่าอาจมีปัญหาเกี่ยวกับการรีสตาร์ทมีบางอย่างเกี่ยวกับเวลาแฝงที่ขึ้นอยู่กับฮาร์ดแวร์ แต่สิ่งนี้ไม่ได้รับการยืนยันและเป็นกฎกึ่งหนึ่งของนิ้วหัวแม่มือฉันค่อนข้างละอายใจที่จะเปิดเผยสู่สาธารณะ ดังนั้นคุณสามารถข้ามไปได้ถ้าคุณรู้สึกว่ามีเหตุผล!


ดังนั้นโดยทั่วไปคุณกำลังบอกว่าฉันต้อง alias restart = "nohup sh -c /etc/init.d/networking stop; sleep 2; /etc/init.d/networking start" เพราะใครบางคนที่ใช้ Debian คิดว่างานของเขาหรือเธอ จะอยู่ในบรรทัดถ้าเราพัฒนาลีนุกซ์เกินกว่าระบบปฏิบัติการที่ไม่น่าเชื่อ

1
ไม่ใช่เลย. ช่างเป็นเรื่องตลกสำหรับคุณ!
Eduardo Ivanec

3

คำสั่งด้านล่างทำงานได้ดีในสภาพแวดล้อมเซิร์ฟเวอร์โดยไม่ต้องทิ้งคำเตือน มันใช้ทั้งหยุดและเริ่มร้องขอบนบริการเครือข่าย

sudo service networking start

ดูเหมือนจะไม่หยุด && เริ่ม อย่างไรก็ตามมันไม่ได้สำหรับฉันใน Debian Wheezy อาจจะเป็นใน distro อื่น ๆ
mivk

มันใช้งานได้ดีใน Ubuntu
Erick


1

ใน Debian Wheezy

service networking restart

ดูเหมือนว่าจะทำในสิ่งที่คาดหวังและไม่บ่น

ฉันเดาว่าใน Jessie ด้วย systemd มันอาจจะแตกต่างกันอีกครั้ง


ด้วยsystemdมันเป็นsystemctl restart networkingiirc แต่ "เก่า" serviceวิธีที่ยังคงทำงาน
wb9688

0

หากคุณไม่พบเหตุผลที่ระบบเครือข่ายไม่สามารถรีสตาร์ทให้ทำในโหมด verbose ภายในscreenเซสชัน:

ifdown -v --force eth0; ifup -v eth0
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.