เหตุใดผู้จัดการเครือข่ายจึงไม่เริ่มทำงานในตอนบูต


10

ฉันคิดว่าสิ่งนี้เริ่มเกิดขึ้นเมื่อสองสามเดือนที่ผ่านมาเมื่อฉันอัพเกรดจาก 10.04 เป็น 12.04

เมื่อใดก็ตามที่ฉันรีบูตผู้จัดการเครือข่ายจะไม่เริ่มทำงาน ฉันต้องวิ่งด้วยตนเองsudo start network-managerแล้วทุกอย่างก็ใช้ได้ดี

สิ่งที่ฉันได้ลองไปแล้ว (การรีบูตหลังจากการแก้ไขแต่ละครั้ง):

  • ตรวจสอบว่าลิงก์ /etc/rc*.d/*network-manager ทั้งหมดมีอยู่ตามที่ควรจะเป็น
  • ตั้งแต่ไฟล์ upstart config ของผู้จัดการเครือข่ายกล่าวถึงlocal-filesystemsและ fstab ของฉันมีการอ้างอิงถึง HDD USB ที่ไม่ได้เชื่อมต่อฉันแสดงความคิดเห็นบรรทัดนั้นออกจาก fstab
  • sudo dpkg-reconfigure network-manager แล้ว sudo apt-get install --reinstall network-manager
  • ดูใน syslog เพื่อหาคำแนะนำไม่เห็นสิ่งที่กระโดดออกมา

ฉันไม่คิดว่าฉันจะแก้ไข/etc/init/network-manager.confแต่นี่เป็นเพียงการอ้างอิง:

# 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

คำตอบ:


15

ส่วน 'เริ่มต้นที่' ช่วยให้คุณทราบว่าจะต้องมีเหตุการณ์ใดบ้างที่จะปล่อยออกมาก่อนที่จะเริ่มการทำงานของผู้จัดการเครือข่าย

ในกรณีนี้คือ:

  • ท้องถิ่น filesystems
  • dbus
  • คงเครือข่ายขึ้น

อัตราต่อรองเป็นสองคนแรกที่ได้รับการปล่อยออกมาถ้าคุณได้บูตไปยังเดสก์ทอป

static-network-up ถูกปล่อยออกมาโดย/etc/network/if-up.d/upstart scriptเหตุการณ์สำคัญจะไม่ถูกปล่อยออกมาเว้นแต่ว่าทุกอินเตอร์เฟสที่กำหนดค่าเป็น 'อัตโนมัติ' /etc/network/interfacesจะเปิดขึ้น

ในกรณีของฉันฉันมีรายการที่เหลือสำหรับ eth0 /etc/network/interfacesซึ่งได้รับการกำหนดค่าให้ใช้ DHCP แต่เนื่องจากไม่มีอีเธอร์เน็ตเสียบเข้ากับ eth0 DHCP จะไม่ประสบความสำเร็จ

คุณสามารถบอกให้พุ่งพรวดเพื่อปล่อยเหตุการณ์และสามารถใช้สิ่งนี้เพื่อตรวจสอบว่ามันเป็นเหตุการณ์เครือข่ายคงที่ที่หายไป

  • รีบูทคอมพิวเตอร์ของคุณและไม่เริ่มทำงานกับผู้จัดการเครือข่าย
  • man initctl(คุณต้องรันคำสั่ง emit ด้วย sudo ดังนั้นจึงไม่เป็นอันตรายต่อการเรียกใช้man initctlเพื่อตรวจสอบคำสั่งที่โพสต์บนอินเทอร์เน็ตก่อน)
  • sudo initctl emit static-network-up(คุณอาจต้องCtrl+ Cสิ่งนี้หลังจากผ่านไปครู่หนึ่ง)
  • initctl status network-manager (เพื่อตรวจสอบว่ามันเริ่มต้น)

หากวิธีนี้ช่วยแก้ไขปัญหาการตรวจสอบ/etc/network/interfacesให้แสดงความคิดเห็นทุกอย่างนอกเหนือจาก:

แท้จริง
iface lo inet loopback

จากนั้นรีบูตและหวังว่าผู้จัดการเครือข่ายจะเริ่มตามที่คาดไว้


คุณตายแล้วนี่เป็นพฤติกรรมงี่เง่าโง่จาก NetworkManager ตัดสินใจที่จะไม่เริ่มทำงานเพราะมีสิ่งอื่นนอกเหนือจากที่loอยู่ในไฟล์นั้นแม้ว่าจะปล่อยให้ WIFI ไม่ได้กำหนดไว้อย่างสมบูรณ์ก็ตาม!
Forbesmyester

ทำงานให้ฉันได้อย่างวิเศษวิเศษ: P
boh

5

บน Arch Linux ของฉันฉันจำเป็นต้องเรียกใช้คำสั่งต่อไปนี้และNetworkManagerเริ่มต้นขึ้นโดยอัตโนมัติ:

systemctl enable NetworkManager

สิ่งนี้ทำให้NetworkManagerสามารถเรียกใช้เมื่อเริ่มต้น นี่คือสิ่งที่ฉันเข้าใจ


ขอบคุณสิ่งนี้แก้ปัญหาของฉันได้ ล้มเหลวหลังจากอัปเดต + เกิดข้อผิดพลาดก่อนรีบูต มิ้นต์ 19.1
โทนีโฮ

4

พบปัญหาเดียวกัน แต่ไม่มีวิธีแก้ไขปัญหาที่เสนอ (รวมถึงบางส่วนจากฟอรัมอื่น) ช่วย

อย่างไรก็ตามหลังจากที่ได้อ่านตอบกลับของกอร์ดอนผมก็ลบเส้นand static-network-up /etc/init/network-manager.confมันได้ผล


ฉันคิดว่าปัญหาที่นี่คือควรจะเริ่มต้นเครือข่ายคงที่ แต่ไม่ใช่ คุณเห็นข้อความ bootup "กำลังรอการกำหนดค่าเครือข่าย" หรือไม่
Andy

@Andy หากเขาใช้งานแบบไร้สายเขาไม่มีส่วนต่อประสานคงที่ ถ้าเขามีauth eth0อินเทอร์เฟซของเขามันจะรอหลายนาทีล้มเหลวและไม่เริ่มการแข่งขัน
Cerin

ฉันคิดว่าคุณหมายถึงauto eth0อะไร ในขณะที่รอหลายนาทีมันจะพูดว่า "กำลังรอการกำหนดค่าเครือข่าย" นั่นคือเหตุผลที่ฉันถาม
Andy

2

ฉันมีปัญหาเดียวกันหลังจากเปลี่ยน Thinkpad ของฉันในขณะที่นำดิสก์เก่ากลับมาใช้ใหม่ มันยังจำที่อยู่ MAC เก่าได้ ฉันต้องลบออกด้วยตนเองใน /etc/udev/rules.d/70-persistent-net.rules ซึ่งแก้ไขปัญหาให้ฉัน


0

เหมือนกันที่นี่ 12.04 - ฉันทำ:

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

แก้ไขแล้ว!

คุณสามารถแก้ไขไฟล์นั้นด้วยตนเองและแก้ไขที่อยู่ mac ...


0

จากREADMEบน/etc/udev/rules.d:

ไฟล์ในไดเร็กทอรีนี้ถูกอ่านโดย udev (7) และใช้เมื่อเหตุการณ์ถูกดำเนินการโดยเคอร์เนล udev daemon เฝ้าดูไดเร็กทอรีนี้ พร้อม inotify เพื่อให้การเปลี่ยนแปลงไฟล์เหล่านี้ถูกเลือกโดยอัตโนมัติด้วยเหตุนี้พวกเขาต้องเป็นไฟล์และไม่เชื่อมโยงไปยังตำแหน่งอื่นเช่นในกรณีใน Debian

เพิ่มเติม:

เขียนกฎของคุณเองในไดเรกทอรีนี้ที่กำหนดชื่อ, symlink, สิทธิ์, ฯลฯ ที่คุณต้องการ เลือกตัวเลขที่สูงกว่ากฎที่คุณต้องการแทนที่และคุณจะถูกใช้

ดังนั้นโปรดอย่าทำตามที่อธิบายไว้ในคำตอบ @epek คัดลอก / วางไฟล์ แต่เพียงเพิ่มไฟล์อื่นที่มีจำนวนเต็มสูงกว่าที่จุดเริ่มต้นที่ชื่อไฟล์ สำหรับเช่น

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

0

สำหรับอูบุนตู 14.04 มี home-hit "แอพพลิเคชั่นเริ่มต้น" กดเพิ่มชื่อ - เครือข่ายบริการ cmd-sudo ผู้จัดการเครือข่ายรีสตาร์ท commant- - [ทำงานเฉพาะการตั้งค่าเครือข่ายที่ถูกต้องเช่น ips, dns, เกตเวย์ ฯลฯ ]


0

วิธีแก้ปัญหาง่ายๆคือการแก้ไข/etc/rc.localเพื่อบู๊ต NetworkManager ทุกครั้งที่คุณบูตคอมพิวเตอร์ นี่ไม่ได้แก้ปัญหารากจริงๆ แต่มันทำให้การทำงานและง่ายสำหรับฉัน

ก่อนอื่นให้เรียกใช้คำสั่งนี้:

sudo vim /etc/rc.local

จากนั้นเนื้อหาควรมีลักษณะเช่นนี้:

#!/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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.