वियोग के बाद वाईफाई कनेक्शन पर कैसे बने रहें?


9

मुझे एक उबंटू मशीन मिली है जिसमें एक सॉफ्टवेयर चल रहा है जिसमें इंटरनेट की आवश्यकता है। हालांकि, कभी-कभी वाईफाई विफल हो जाता है (उदाहरण के लिए राउटर रिबूट) और फिर से नेटवर्क नहीं मिलता है, जब तक कि मैं मैन्युअल रूप से सेवा नेटवर्क-प्रबंधक पुनरारंभ नहीं करता हूं या मैं इसे खोजने के लिए वाईफाई पर और स्विच बंद कर देता हूं।

क्या कनेक्टिविटी को मॉनिटर करने के लिए क्रोन जॉब या सुपरवाइजर जॉब चलाने का एक संभावित तरीका है और यदि नेटवर्क को नेटवर्क-मैनेजर सेवा को पुनरारंभ करने और उस विशिष्ट SSID से कनेक्ट करने के लिए नेटवर्क नहीं मिल सकता है?


मुझे लगता है कि यह एक नए नेटवर्क-मैनेजर बग के कारण हो सकता है, क्योंकि मैंने भी इस समस्या को हाल ही में अनुभव करना शुरू किया है, मुझे लगता है कि उबंटू 15.04 में अपग्रेड करने के बाद।
सादी

1
कई बग रिपोर्ट हैं जो बताती हैं कि कोई समस्या हो सकती है। क्या आप अपने कर्नेल (uname -a) nd नेटवर्क प्रबंधक संस्करण का विवरण पोस्ट कर सकते हैं, और अपने वाईफाई कार्ड का विवरण भी दे सकते हैं।
डेवएम

जवाबों:


7

मुझे लगता है कि यह एक नए नेटवर्क-मैनेजर बग के कारण हो सकता है, क्योंकि मैंने भी इस समस्या को हाल ही में अनुभव करना शुरू किया है - मुझे लगता है कि उबंटू 15.04 में अपग्रेड करने के बाद।

ऐसा लगता है कि मैं इस समस्या को अस्थायी रूप से इन दो फ़ाइलों के साथ समाधान के रूप में हल करने में कामयाब रहा हूं:

  1. मेरे पास वाईफाई कनेक्शन देखने के लिए एक स्क्रिप्ट फ़ाइल है और ~/.bin/WiFi-Keep-Connectedइस सामग्री के साथ, डिस्कनेक्ट होने पर वाईफाई बंद और टॉगल करें:


#!/bin/bash
while true; do
    LC_ALL=C nmcli -t -f TYPE,STATE dev | grep "^wifi:disconnected$"
    if [ $? -eq 0 ]; then
        rfkill block wifi && rfkill unblock wifi
        sleep 10
    fi
    sleep 10
done

  1. मेरे पास ~/.config/autostart/KeepWifiConnected.desktopइस सामग्री के साथ इस स्क्रिप्ट को हर बार लॉगिन करने के लिए एक .desktop फ़ाइल है, उदाहरण के लिए :


[Desktop Entry]
Type=Application
Exec=/home/"username"/.bin/WiFi-Keep-Connected
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Keep WiFi Connected
Icon=networkmanager

नोट: आपको Exec=ऊपर दिए गए पथ में अपना उपयोगकर्ता नाम दर्ज करना होगा ।

एनबी: कभी - कभी इस तरह से वाई-फाई को फिर से शुरू करना पर्याप्त नहीं होता है, इस स्थिति में मुझे टर्मिनल से एक या दो बार इस कमांड को दर्ज करके नेटवर्क मैनेजर को पुनरारंभ करना होगा :sudo service network-manager restart

इसलिए, इस तरह से ऊपर (बस मामले में) स्क्रिप्ट को संशोधित करने के लिए एक बेहतर विचार हो सकता है :


#!/bin/bash
while true; do
    LC_ALL=C nmcli -t -f TYPE,STATE dev | grep "^wifi:disconnected$"
    if [ $? -eq 0 ]; then
        rfkill block wifi && rfkill unblock wifi
        sleep 10
    fi
    LC_ALL=C nmcli -t -f TYPE,STATE dev | grep "^wifi:disconnected$"
    if [ $? -eq 0 ]; then
        gksudo service network-manager restart
        sleep 10
    fi
    sleep 10
done


1

मुझे पता नहीं क्यों, लेकिन जैसा कि आप उल्लेख करते हैं, कभी-कभी जब वाईफाई विफल हो जाता है, तो नेटवर्क-प्रबंधक फिर से नेटवर्क नहीं पाता है।

मुझे लगता है कि समस्या यह है कि नेटवर्क-प्रबंधक, वाईफाई कनेक्शन विफलता के बाद, वाईफाई सूची को ताज़ा नहीं करता है (और ऐसा लगता है कि नेटवर्क-प्रबंधक समस्याग्रस्त नेटवर्क को छुपाता है)। नेटवर्क-प्रबंधक के पास पुन: स्कैन मेनू विकल्प नहीं है, और नेटवर्क-प्रबंधक मेनू पर वायरलेस चेकबॉक्स को अक्षम और सक्षम करना एक नया वाईफाई स्कैन (जैसा कि सेवा शुरू होती है) को बाध्य नहीं करता है।

जब नेटवर्क-मैनेजर मेरे वायरल कनेक्शन को खो देता है और उसे फिर से मेरी वाईफाई नहीं मिलती है (और मुझे पता था कि वाईफाई ऑपरेटिव है), मैं कमांड निष्पादित करता हूं:

sudo iwlist wlan0 scan

यह wlan0 इंटरफ़ेस पर एक wifi स्कैन करता है (wlan0 मेरे लैपटॉप में वायरलेस इंटरफ़ेस का नाम है) और यह आपको उपलब्ध वायरलेस नेटवर्क दिखाता है, लेकिन एक साइड इफेक्ट नेटवर्क-मैनेजर के रूप में स्वचालित रूप से इसकी सूची को ताज़ा करता है और खोए हुए नेटवर्क को ढूंढता है।

जब यह समस्या होती है, तो मैं मैन्युअल रूप से कमांड निष्पादित करना पसंद करता हूं (नेटवर्क पुन: कनेक्ट करना कॉम्यूनिकेशन फिर से शुरू करना सुनिश्चित नहीं करता है, और कुछ कार्यक्रमों को फिर से शुरू करने की आवश्यकता होगी)।

लेकिन, जैसा कि आप उल्लेख करते हैं, आप इसे क्रोन कर सकते हैं, और आप इसे कनेक्टिविटी के परीक्षण के बिना कर सकते हैं (स्कैन प्रक्रिया आपकी वाईफाई सूची को अपडेट करती है लेकिन यह आपके वर्तमान वायरलेस कनेक्शन को बंद नहीं करती है, यदि आप जुड़े हुए हैं)।

यदि आप पसंद करते हैं तो आप पिंग या आईवॉन्फिग का उपयोग करके शंकुवृद्धि का परीक्षण कर सकते हैं और यदि आप कनेक्ट नहीं हैं, तो स्कैन लॉन्च करें।

कुछ इस तरह:

#!/bin/bash
if ! ping -c 1 -W 1 your_router_ip &> /dev/null
then
    iwlist wlan0 scan
fi

लेकिन याद रखें कि इस स्क्रिप्ट को मूल विशेषाधिकार के साथ sudoed या निष्पादित किया जाना चाहिए। यह 1 सेकंड टाइमआउट के साथ केवल 1 पिंग भेजता है।


उपरोक्त समाधान ठीक है, लेकिन नेटवर्क प्रबंधक (एनएम) से अधिसूचना को कैसे पकड़ा जाए कि कनेक्शन गिरा दिया गया है। यह एनएम के भीतर से ही संभव होना चाहिए, स्रोत के माध्यम से एक त्वरित रूप से लगता है कि यह मजेदारता का प्रस्ताव है। संदेश dbus और nm आइकन अपडेट से लिया गया है, इसलिए यह संभव है कि यह एक बग है, या शायद सिस्टम का एक और हिस्सा कनेक्शन की बूंद को पकड़ता है और संशोधित किया गया है और नोटिस अब फिर से कनेक्ट करने के प्रयास से नहीं गुजरता है?
डेव्म

0

मुझे लगता है कि मुद्दा ऐसा है जैसे राउटर की कनेक्टिविटी समस्याओं के कारण कनेक्शन खो जाता है। नेटवर्क प्रबंधक को पुनरारंभ करने में मदद नहीं कर सकता है जब राउटर अपने आप में समस्या है। इसके बजाय आप कनेक्शन खो जाने पर SIGSTOP का उपयोग कर निलंबित करने के लिए सॉफ़्टवेयर चलाने की प्रक्रिया को बनाने के लिए एक स्क्रिप्ट बना सकते हैं , और नेटवर्क उपलब्ध होने पर SIGCONT का उपयोग जारी रखने के लिए फिर से प्रक्रिया करने के लिए ट्रिगर कर सकते हैं। और अपनी क्रोन नौकरियों में स्क्रिप्ट जोड़ें, इसे हर मिनट चलाने के लिए शेड्यूल करें।

आपके संदर्भ के लिए: http://hints.macworld.com/article.php?story=20030915193440334

उम्मीद है की यह मदद करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.