ทำให้ตัวจัดการเครือข่ายเริ่มต้นใหม่หลังจากการเชื่อมต่อหลุดหรือไม่


18

ใช้ Ubuntu 11.10 (Unity 3D) และการเชื่อมต่ออินเทอร์เน็ตเคเบิล (DSL) โดยไม่มีเราเตอร์หรือโมเด็ม

หากฉันยกเลิกการเชื่อมต่ออินเทอร์เน็ตฉันสามารถเชื่อมต่อใหม่ได้โดยคลิกที่ไอคอนผู้จัดการเครือข่ายและเลือกการเชื่อมต่อจากเมนูแบบเลื่อนลงเนื่องจากการเชื่อมต่อของฉันจะปรากฏ ไม่จำเป็นต้องรีสตาร์ทตัวจัดการเครือข่าย

แต่เมื่อใดก็ตามที่การเชื่อมต่ออินเทอร์เน็ตลดลงด้วยตนเองฉันได้เปิดเทอร์มินัลและใช้sudo service network-manager restartเนื่องจากฉันไม่เห็นการเชื่อมต่อใด ๆ ในเมนูดรอปดาวน์ตัวจัดการเครือข่าย หลังจากคำสั่งแล้วตัวจัดการเครือข่ายจะเริ่มและเชื่อมต่อโดยอัตโนมัติ

มีการตั้งค่าบางอย่างหรือไม่เพื่อให้ตัวจัดการเครือข่ายไม่ต้องเริ่มการทำงานใหม่ทุกครั้งที่การเชื่อมต่อขาดหายไป

ฉันเดาอีกนัยหนึ่งฉันไม่ต้องการให้ผู้จัดการเครือข่ายหยุดตราบเท่าที่ฉันใช้คอมพิวเตอร์โดยไม่คำนึงว่าการเชื่อมต่อกับ ISP ของฉันลดลงหรือไม่

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

แก้ไขวันที่ 26 มกราคม 2012: เส้นจาก syslog

Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: No response to 3 echo-requests
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Serial link appears to be disconnected.
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Connect time 241.5 minutes.
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Sent 3575961 bytes, received 79026206 bytes.
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Connection terminated.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing workstation service for ppp0.
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): device state change: activated -> failed (reason 'ppp-disconnect') [100 120 13]
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <warn> Activation (eth0) failed.
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]:    SCPlugin-Ifupdown: devices removed (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): now unmanaged
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): device state change: failed -> unmanaged (reason 'removed') [120 10 36]
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): deactivating device (reason 'removed') [36]
Jan 25 20:09:36 aes-Inspiron-1545 dbus[802]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper)
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <warn> could not read ppp stats: No such device
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): cleaning up...
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): taking down device.
Jan 25 20:09:36 aes-Inspiron-1545 kernel: [18027.155552] sky2 0000:09:00.0: eth0: disabling interface
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Interface eth0.IPv6 no longer relevant for mDNS.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Leaving mDNS multicast group on interface eth0.IPv6 with address fec0::b:223:aeff:fe2d:2431.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing address record for 2002:1b00:3b4f:b:223:aeff:fe2d:2431 on eth0.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing address record for 2002:1b00:3754:b:223:aeff:fe2d:2431 on eth0.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing address record for 2002:7345:f137:b:223:aeff:fe2d:2431 on eth0.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing address record for fec0::b:223:aeff:fe2d:2431 on eth0.
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> Unmanaged Device found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> Unmanaged Device found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Terminating on signal 15
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Exit.
Jan 25 20:09:36 aes-Inspiron-1545 dbus[802]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[3529]: <info>  Caught signal 15, shutting down...
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> caught signal 15, shutting down normally.
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <warn> quit request received, terminating...
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth1): now unmanaged
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth1): device state change: unavailable -> unmanaged (reason 'removed') [20 10 36]
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> Unmanaged Device found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> exiting (success)
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[6945]: <info>  ModemManager (version 0.5) starting...
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[6947]: <info> NetworkManager (version 0.9.1.90) is starting...
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[6947]: <info> Read config file /etc/NetworkManager/NetworkManager.conf
Jan 25 20:11:56 aes-Inspiron-1545 kernel: [18167.470749] init: reconnect main process (6948) terminated with status 2
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[6945]: <info>  Loaded plugin Nokia
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[6945]: <info>  Loaded plugin Ericsson MBM
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[6945]: <info>  Loaded plugin MotoC

ป้อนคำอธิบายรูปภาพที่นี่


1
รายงานข้อผิดพลาดที่เกี่ยวข้อง: bugs.launchpad.net/ubuntu/+source/ppp/+bug/869954 - bugs.launchpad.net/ubuntu/+source/ppp/+bug/869954 - old.nabble.com/ ......
Savvas Radevic

โปรดลองวิธีแก้ปัญหาทั้งสองนี้: (1) forums.fedoraforum.org/showthread.php?t=229718#2 (2) platonic.techfiz.info/2009/07/28/ … - แต่น่าเสียดายที่ฉันไม่มีบรอดแบนด์มือถือ การเชื่อมต่อเพื่อลองใช้
Savvas Radevic

@medigeek แม้ว่าฉันจะไม่มีการเชื่อมต่อมือถือ มันคือการเชื่อมต่อแบบ DSL (แบบใช้สาย): สายเคเบิลที่ต่อเข้ากับช่องเสียบโทรศัพท์ ในตอนท้ายของฉันไม่มีเราเตอร์หรือโมเด็มแทรกแซง

@ vasa1 ยกเลิกการเชื่อมต่อ DSL ของคุณและออกคำสั่งนี้ในเทอร์มินัล nmcli con up id "DSL connection 1". ฉันไม่มี DSL ดังนั้นฉันจึงต้องการความช่วยเหลือจากคำสั่งและเอาต์พุตทั้งหมด แสดงความคิดเห็นออกของคุณ
ราหุล Virpara

ให้ผลลัพธ์:nmcli -t -f TYPE,STATE dev
Rahul Virpara

คำตอบ:


16

นี่คือสคริปต์พุ่งพรวดที่คุณสามารถทำ/etc/init/reconnect.conf:

start on started network-manager
stop on runlevel [016]

script
  while true; do
    if ifconfig eth0 | grep -q "inet addr:"; then
       # echo "all ok!"
    else
       restart network-manager
    fi
    sleep 5
  done
end script

เมื่อสูญเสียที่อยู่ IP สำหรับ eth0 (กำหนดค่าอินเทอร์เฟซของคุณหากแตกต่างกัน) มันจะรีสตาร์ทงานตัวจัดการเครือข่ายและคืนค่าการเชื่อมต่อ


ทั้งหมดนี้เป็นเรื่องใหม่สำหรับฉันดังนั้นฉันจะขอบคุณมือถือ ฉันจะสร้างไฟล์ข้อความชื่อ reconnect.conf และวางไว้ใน / etc / init ด้วยการอนุญาต "root" หรือไม่? ฉันจะใช้คำข้อความสำหรับคำ? ใน "การเชื่อมต่อเครือข่ายที่ใช้งานอยู่" ของฉันฉันเห็น "ส่วนต่อประสาน: อีเธอร์เน็ต (eth0)" ชื่อการเชื่อมต่อของฉันคือ "vasa1" ฉันจะปล่อย "inet addr:" ตามที่เป็นหรือฉันจะต้องป้อนค่าบางอย่าง? Ubuntu จะรู้หรือไม่ว่าต้องอ่านไฟล์นี้? หรือฉันต้องทำอะไรสักอย่าง?

1
ไม่เพียงเท่าที่คุณกล่าวว่าเป็นรากทำให้ไฟล์ที่เรียกว่าการreconnect.conf /etc/initสิ่งเดียวที่คุณต้องเปลี่ยนคือ eth0 เป็นอย่างอื่นถ้ามันไม่ถูกต้อง inet addr:ส่วนหนึ่งเป็นเพียงตัวกรองสำหรับ grep และไม่ควรสัมผัส ifconfigชื่อเชื่อมต่อที่เกี่ยวข้องสามารถตรวจสอบได้ผ่านทาง พุ่งพรวดจะอ่านไฟล์นี้โดยอัตโนมัติและคุณควรทำsudo start reconnectเพื่อให้งานดำเนินต่อไป ในการรีบูตครั้งถัดไประบบจะเริ่มต้นโดยอัตโนมัติ
Tuminoid

บรรทัดแรกของการifconfigเริ่มต้นด้วยethoดังนั้นฉันจะใช้นั้นและsudo start reconnectเมื่อการเชื่อมต่อลดลง ฉันจะโพสต์กลับพร้อมกับผลลัพธ์ ขอบคุณ!

ฉันสร้าง/etc/init/reconnect.confและรีบูต เมื่อการเชื่อมต่อของฉันลดลงหลังจากรีบูตสักครู่nmก็ไม่ได้เริ่มระบบใหม่ sudo start reconnectดังนั้นผมจึงออก reconnect stop/waitingเป็นการตอบสนอง แต่nmไม่ได้รีสตาร์ท ฉันต้องsudo service network-manager restartซึ่งเป็นสิ่งที่ฉันทำตามปกติ แทนการrestart network-managerจะคล้ายrestart service network-managerถูกต้อง? (BTW ฉันใส่ eth0 และไม่ใช่ etho (ไม่เหมือนสิ่งที่มีอยู่ในความคิดเห็นก่อนหน้าของฉัน))

บนระบบเครือข่ายผู้จัดการของฉันเป็นงานพุ่งพรวดสำหรับนาโนเมตรและคำสั่งดังกล่าวข้างต้นการทำงานที่ดีสำหรับฉัน service network-manager restartแต่รู้สึกอิสระที่จะเปลี่ยนคำสั่งเริ่มต้นกับสิ่งที่ทำงานในระบบของคุณเช่น เพียงแค่อยากรู้ว่าผลลัพธ์ของstatus network-managerระบบของคุณคืออะไร? หากที่แจ้งว่าstop/waiting(หรือให้ข้อผิดพลาด) หลังจากรีบูตคุณต้องเปลี่ยนเริ่มต้นเป็นสิ่งที่ต้องการstart on runlevel [2345]และเพิ่มsleep 60ก่อนในขณะที่
Tuminoid

2

วิธีแก้ปัญหาที่รวดเร็วและสกปรกคือการเขียนสคริปต์ที่ทำงานping -i 5 google.com || service network-manager restartในฐานะรูท (คุณสามารถเขียน /etc/init.d/-daemon สำหรับสิ่งนั้น แต่เนื่องจากวิธีการแก้ปัญหานั้นสกปรกมากฉันจะไม่ทำอย่างนั้น)

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


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

ฉันกำลังอ่านหนังสืออยู่และต้องการทราบว่ามันดีหรือไม่ที่จะปิงไซต์ซ้ำ ๆ ฉันได้รับความประทับใจที่ ping ถูกใช้เป็นหลักในการแก้ไขปัญหา

1
อาจเป็นไปไม่ได้นั่นคือเหตุผลหนึ่งว่าทำไมสกปรก;) ลองใช้วิธีแก้ปัญหา Tuminoids เล็กน้อยซึ่งไม่สามารถใช้งานได้หากเซิร์ฟเวอร์ DNS มีปัญหา แต่ควรทำงานในกรณีส่วนใหญ่!
sakjur

ฉันค่อนข้างมือใหม่และไม่ได้รับอะไรสกปรกในคำตอบของคุณ ..
kernel_panic

1
โดยทั่วไปจะทำงานโดยส่งคำขอไปยัง Google หนึ่งครั้งทุก ๆ วินาทีที่ห้าและรีสตาร์ทเครือข่ายผู้จัดการถ้าคุณไม่สามารถเข้าถึง Google มันสกปรกเพราะมันไม่ได้เป็นวิธีที่ดีที่จะทำมันไม่ใช่วิธีที่มีประสิทธิภาพที่จะทำและคุณอาจทำให้ดูแลระบบอยู่ที่ไหนสักแห่งปิดกั้นที่อยู่ IP ของคุณ;) (ฉันไม่คิดว่า Google จะทำเช่นนั้น แต่มันไม่มาก ที่ดีอยู่แล้ว) คิดว่ามันเป็นนั่งจิ้มคนที่จะดูว่าคุณยังมีชีวิตอยู่;)
sakjur

2

ลองใช้ wicd แทน network-manager มันถูกแนะนำสำหรับกรณีที่คล้ายกัน: https://bbs.archlinux.org/viewtopic.php?id=124443

ฉันไม่รู้ว่ามันจะแก้ปัญหาหรือไม่ถ้า wicd รองรับ PPPoE

  1. สำรองไฟล์. deb ในกรณีที่:

    sudo apt-get download network-manager network-manager-gnome
    
  2. กำจัดผู้จัดการเครือข่ายและติดตั้ง wicd

    sudo apt-get purge network-manager network-manager-gnome
    sudo apt-get install wicd wicd-gtk
    
  3. Reboot ลองเชื่อมต่อโดยใช้ wicd

หากมีสิ่งใดผิดพลาดเพียงล้างข้อมูลและติดตั้งตัวจัดการเครือข่ายใหม่:

sudo apt-get purge wicd wicd-gtk
sudo dpkg -i network-manager*.deb

ขอบคุณมาก medigeek! สามแต้ม หนึ่งในกรณี ArchLinux ที่ OP ไม่ได้กลับมาเพื่อแสดงว่าการเปลี่ยนแปลงที่จะwicdแก้ปัญหา ประการที่สองในขณะที่มันไม่สะดวกฉันลังเลที่จะเปลี่ยนจากค่าเริ่มต้น สำหรับตอนนี้ฉันใช้นามแฝงนี้: alias nm='echo "password" | sudo -S service network-manager restart'เป็นวิธีแก้ปัญหา ประการที่สามจากลิงก์ที่มีประโยชน์อื่น ๆ ของคุณปรากฏว่าปัญหาไม่เกี่ยวข้องกับ Ubuntu แต่เป็น "อัปสตรีม" ดังนั้นฉันจะถามว่าควรปิดคำถามนี้หรือไม่

1
เป็นจริงสำหรับจุดที่ 1 ฉันควรลบคำตอบเนื่องจากหน้าคำถามที่พบบ่อย wicd กล่าวว่าจะไม่สนับสนุน pppoe จนกว่า wicd เวอร์ชัน 2.0 สำหรับจุดที่ 3 คุณสามารถลองยื่นข้อบกพร่องต้นน้ำโดยตรง (pppd หรือ network-manager?)
Savvas Radevic

ฉันเพิ่มตัวเองลงในข้อผิดพลาดของ launchpad ที่คุณให้ไว้

0

ฉันได้สร้างสคริปต์สำหรับปัญหานี้:

#!/bin/bash

for(( ; ; ))
do
VALUE=$(ifconfig | grep ppp0| awk '{print $1}')
        if [ "$VALUE" != "ppp0" ]; then
                {       eval restart network-manager
                        eval sleep 5
                }
        fi
done

สิ่งนี้ทำงานได้ดี แต่สคริปต์นี้ใช้ CPU ของฉันมากเกินไป มีใครช่วยฉันลดการใช้ CPU ได้บ้างไหม


หากคุณต้องการถามคำถามใหม่ให้ถามคำถามนั้นแยกต่างหากแทน วิธีถาม
Aditya

0

ทำไมฉันตอบคำถามนี้

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

แต่มีวิธีหรือไม่

คือมีวิธี คุณเพียงแค่ต้องสร้างสคริปต์ที่ตรวจสอบสถานะเครือข่ายของคุณและเริ่ม Network Manager ตามต้องการ เราจะสร้างสคริปต์นี้และบริการ systemd ที่จะเริ่มต้นด้วยระบบและจะตรวจสอบสถานะเครือข่ายของคุณทุก 5 วินาทีเพื่อค้นหาว่าคุณออนไลน์หรือไม่

ฉันควรทำอย่างไรดี?

ก่อนอื่นเราต้องติดตั้งเครื่องมือ fping เพื่อทำการทดสอบการเชื่อมต่อ (fping return "is alive" หากการเชื่อมต่อเป็นไปได้และ "ไม่พบที่อยู่" หากไม่ได้):

$ sudo apt-get install fping -y

ตอนนี้เราจะสร้างสคริปต์การตรวจสอบในระบบของเรา สร้างไฟล์ที่ / usr / local / bin / ชื่อ nm-watcher:

$ sudo touch /usr/local/bin/nm-watcher

และแก้ไขโดยใช้นาโนหรือโปรแกรมแก้ไขข้อความที่คุณต้องการ:

$ sudo nano /usr/local/bin/nm-watcher

คัดลอกและวางสคริปต์นี้ในเครื่องมือแก้ไขบันทึกและปิดไฟล์ (หากคุณใช้นาโนเช่นในบทช่วยสอนนี้ให้ใช้ "CTRL + X" "Y" และ "ENTER" ตามลำดับ) อย่าลืมเปลี่ยน wlan0 เป็นอินเทอร์เฟซที่คุณต้องการให้ wm-watcher ตรวจสอบ:

#!/bin/bash

while true; do #create a infinite loop to keep looking at your connection
        NET=$(ifconfig wlan0 | grep "inet inet addr:") # verify if the interface has an assigned IP
        ROUTE=$(fping google.com 2>&1 | grep "alive") # try to ping google.com and verify if we have any response
        WEB=$(wget --tries=10 --timeout=20 --spider http://google.com 2>&1 | grep "OK") # spiders google.com to verify if the page exists. returns error if a connections is not possible

        if [ ! "$NET" != "" ] || [ ! "$ROUTE" != "" ] || [ ! "$WEB" != "" ]; then # verify if any of the above conditions aren't OK
                service network-manager restart
        fi

        sleep 5
done

ในการเรียกใช้สคริปต์นี้เราจำเป็นต้องทำให้สามารถเรียกใช้งานได้:

$ sudo chmod 755 /usr/local/bin/nm-watcher

ตอนนี้เราจะสร้างบริการ SystemD สำหรับสิ่งนี้คุณควรสร้างและแก้ไขไฟล์ nm-watcher.service ที่ / etc / systemd / system /:

$ sudo touch /etc/systemd/system/nm-watcher.service && sudo nano /etc/systemd/system/nm-watcher.service

และใส่เนื้อหานี้ไว้ในไฟล์:

[Unit]
Description=NetworkManager Watcher
Wants=NetworkManager.service
Before=NetworkManager.service

[Service]
ExecStart=/usr/local/bin/nm-watcher

[Install]
WantedBy=multi-user.target

สิ่งนี้จะสร้างไฟล์เซอร์วิสที่ทำให้ SystemD เรียกสคริปต์ที่เราสร้างไว้ก่อนหน้าในทุกการบู๊ตหลังจากเราสร้างการเชื่อมต่อโดยใช้ network-manager.service

เราควรรู้ว่าเปิดใช้งานบริการนี้เพื่อทำงานโดยใช้:

$ sudo systemctl enable nm-watcher.service

และเริ่มบริการโดยพิมพ์:

$ sudo service nm-watcher start

วิธีตรวจสอบว่าบริการกำลังทำงานอยู่หรือไม่:

$ sudo service nm-watcher status

หากคุณมีปัญหาใด ๆ กับบริการคุณสามารถดูข้อความการแก้ปัญหาโดยใช้:

$ sudo journalctl -u nm-watcher

ฉันควรทำสิ่งอื่นใดหรือไม่

ไม่นี่คือสิ่งที่จำเป็นสำหรับการทำงานนี้ให้สำเร็จ สคริปต์นี้มีผลกระทบต่อประสิทธิภาพของระบบต่ำมากอย่างที่คุณเห็นในภาพหน้าจอนี้:

รอยเท้า nm-watcher


0

ในแล็ปท็อปรุ่นเก่าของฉันฉันมีการ์ด WiFi ที่ไม่ดีซึ่งมีแนวโน้มที่จะตัดการเชื่อมต่อจาก WiFi หากมีโหลดจำนวนมาก (เช่นการดาวน์โหลดไฟล์ขนาดใหญ่ ฯลฯ )

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

#!/bin/bash

ping -c 1 8.8.8.8
received=$?
echo $received
if [[ $received -ne 0 ]] ; then
    service network-manager restart
fi

ฉันสร้าง cronjob รูทด้วย sudo crontab -eและตั้งให้ทุกนาที (คุณสามารถทำได้บ่อยกว่า แต่สคริปต์เป็น ping ง่าย ๆ ดังนั้นจึงไม่ใช้ทรัพยากรมาก) มันจะเรียกใช้สคริปต์

ดังนั้นถ้า WiFi ของฉันออกไปด้วยเหตุผลบางอย่างมันจะออกมาทีละครั้งประมาณหนึ่งนาทีเท่านั้น หากคุณไม่คุ้นเคยcronฉันขอแนะนำให้อ่านสิ่งนี้

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