연결이 끊어진 후 Network Manager를 다시 시작 하시겠습니까?


18

라우터 또는 모뎀없이 Ubuntu 11.10 (Unity 3D) 및 케이블 (DSL) 인터넷 연결을 사용합니다.

경우 내가 내 인터넷 연결을 분리, 난 그냥 네트워크 관리자 아이콘을 클릭하고 내 연결을 볼 수 있기 때문에 드롭 다운 메뉴에서 연결을 선택하여 다시 연결할 수 있습니다. 네트워크 관리자를 다시 시작할 필요가 없습니다.

그러나 인터넷 연결 자체가 끊길 때마다 sudo service network-manager restart네트워크 관리자 드롭 다운 메뉴에 연결이 표시되지 않으므로 터미널을 열고 사용 합니다. 명령 후에 만 ​​네트워크 관리자가 시작되고 자동으로 연결됩니다.

연결이 끊길 때마다 네트워크 관리자를 다시 시작할 필요가 없도록 설정이 있습니까? (다시 시작할 필요가 없을 때 연결을 끊는 것과는 반대로)?

즉, ISP에 대한 연결이 끊어 졌는지 여부에 관계없이 컴퓨터를 사용하는 한 네트워크 관리자를 중지하고 싶지 않습니다.

터미널을 열고 명령과 암호를 입력하는 것은 그리 큰 일이 아니지만 네트워크 관리자가 멈추지 않도록하는 방법이 있다면 더 좋습니다.

2012 년 1 월 26 일 편집 : 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) 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이 없으므로 모든 명령 및 출력에 대한 도움이 필요합니다. 출력 내용을 주석으로 처리하십시오.
Rahul Virpara

출력 :nmcli -t -f TYPE,STATE dev
Rahul Virpara

답변:


16

다음은 설치할 수있는 Upstart 스크립트입니다 /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

eth0의 IP 주소가 손실되면 (다른 인터페이스로 구성) 네트워크 관리자 작업을 다시 시작하고 연결을 복원합니다.


이것은 나에게 새로운 것이므로 손을 잡고 감사합니다. reconnect.conf라는 텍스트 파일을 만들어 "root"권한으로 / etc / init에 배치합니까? 단어에 단어를 사용합니까? "활성 네트워크 연결"에서 "인터페이스 : 이더넷 (eth0)"이 표시됩니다. 연결 이름은 "vasa1"입니다. "inet addr :"를 그대로 두거나 값을 입력해야합니까? Ubuntu는이 파일을 읽어야한다는 것을 알고 있습니까? 아니면 뭔가해야합니까?

1
수행 루트로라는 파일 확인했다대로 reconnect.conf로를 /etc/init. 변경해야 할 것은 eth0이 올바르지 않은 경우 다른 것입니다. inet addr:part는 grep의 필터 일 뿐이므로 손대지 말아야합니다. 를 통해 관련 연결 이름을 확인할 수 있습니다 ifconfig. Upstart는이 파일을 자동으로 읽으 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하지 않았다 (이전 의견에있는 것과 달리))

내 시스템에서 네트워크 관리자는 nm에 대한 시작 작업이며 위의 명령은 나에게 잘 작동하지만 재시작 명령을 시스템에서 작동하는 것으로 변경하십시오 (예 :) 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을 찾을 수 없을 때마다 네트워크 관리자를 다시 시작하고 5 초마다 한 번씩 확인합니다.


나는 전에 스크립트를 작성하지 않았기 때문에 해결책을 이해하지 못하더라도 이것을 투표했습니다. 단계별 세부 정보를 알려주시겠습니까?

나는 약간의 독서를하고 있으며 사이트를 반복적으로 핑하는 것이 괜찮은지 알고 싶습니다. 핑이 주로 문제 해결에 사용된다는 인상을받습니다.

1
아마도 그것이 더러운 이유 중 하나입니다.) Tuminoids 솔루션을 조금 사용해보십시오 .DNS 서버에 문제가 있으면 작동하지 않지만 대부분의 경우 작동해야합니다!
sakjur

꽤 초보자이고 귀하의 답변에 DIRTY를
얻었습니다

1
기본적으로 5 초마다 한 번씩 Google에 요청을 보내고 Google에 연결할 수 없으면 네트워크 관리자를 다시 시작하여 작동합니다. 그것을하는 좋은 방법이 아니기 때문에 더럽습니다. 효과적인 방법은 아니며 sysadmin을 어딘가에 IP 주소를 차단 할 수 있습니다.) (Google은 그렇게 생각하지 않지만 그렇게하지는 않습니다. 어쨌든) 당신이 여전히 살아 있는지 확인하기 위해 앉아서 사람을
파는

2

네트워크 관리자 대신 wicd를 사용해보십시오. 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. 재부팅하십시오. wicd를 사용하여 연결하십시오.

문제가 발생하면 wicd를 제거하고 네트워크 관리자를 다시 설치하십시오.

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

많은 감사합니다, medigeek! 세 점. 하나는 archlinux 사례에서 wicd 로의 변경으로 문제가 해결 되었는지 여부를 알려 주기 위해 돌아 오지 않았습니다 . 둘째, 불편하지만 기본값에서 변경하는 것을 망설입니다. 지금은이 별칭을 alias nm='echo "password" | sudo -S service network-manager restart'해결 방법으로 사용하고 있습니다. 셋째, 다른 유용한 링크에서 문제는 우분투와 관련이 없지만 "업스트림"인 것으로 보이 므로이 질문을 닫아야하는지 묻습니다.

1
wicd FAQ 페이지에서 wicd 버전 2.0까지 pppoe를 지원하지 않는다고 말했기 때문에 첫 번째 포인트에 대해서는 아마도 대답을 삭제해야합니다 . 포인트 # 3의 경우 버그가 직접 상류 신청을 시도해 볼 수도 있습니다 (pppd를 또는 네트워크 관리자?)
사바스 Radevic

제공 한 런치 패드 버그에 본인을 추가했습니다.

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 또는 upstart를 사용하여 작성되었습니다. 지금부터 systemd를 사용할 것이므로 더 나은 스크립트와 정보를 작성하고 있습니다. 그 방법에 대해.

그러나 방법이 있습니까?

방법이 있습니다. 네트워크 상태를 모니터링하고 필요할 때 Network Manager를 다시 시작하는 스크립트 만 작성하면됩니다. 이 스크립트와 시스템으로 시작되는 시스템 서비스를 구축하고 5 초마다 네트워크 상태를 모니터링하여 온라인 상태인지 여부를 찾습니다.

어떻게해야합니까?

우선, 우리는 연결 테스트 중 하나를 만들기 위해 fping 도구를 설치해야합니다 (연결이 가능하면 "fing return"is alive ", 그렇지 않으면"address not found ") :

$ sudo apt-get install fping -y

이제 시스템에서 모니터 스크립트를 만듭니다. / usr / local / bin /에 nm-watcher라는 파일을 작성하십시오.

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

nano 또는 원하는 텍스트 편집기를 사용하여 편집하십시오.

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

이 스크립트를 편집기에 복사하여 붙여넣고 파일을 저장 한 후 닫습니다 (이 자습서 에서처럼 nano를 사용하는 경우 "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 서비스를 작성합니다.이를 위해 / etc / systemd / system /에서 nm-watcher.service 파일을 작성하고 편집해야합니다.

$ 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

이는 network-manager.service를 사용하여 연결을 설정 한 후 매번 부팅 할 때마다 SystemD 호출을 스크립트로 만드는 서비스 파일을 생성합니다.

다음을 사용하여이 서비스를 실행할 수 있도록해야합니다.

$ sudo systemctl enable nm-watcher.service

다음을 입력하여 서비스를 시작하십시오.

$ sudo service nm-watcher start

서비스가 실행 중인지 확인하려면 다음을 입력하십시오.

$ sudo service nm-watcher status

서비스에 문제가있는 경우 다음을 사용하여 디버그 메시지를 볼 수 있습니다.

$ sudo journalctl -u nm-watcher

다른 일을해야합니까?

아니요,이 작업을 수행하는 데 필요한 모든 것입니다. 이 스크립트는 다음 스크린 샷에서 볼 수 있듯이 시스템 성능에 미치는 영향이 매우 낮습니다.

nm 감시자 발자국


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매분마다 (더 자주 수행 할 수는 없지만 스크립트는 간단한 핑이므로 리소스를 많이 사용하지 않음) 스크립트를 실행하도록 설정했습니다.

따라서 WiFi가 어떤 이유로 든 나가면 한 번에 약 1 분 동안 만 나가게됩니다. 에 익숙하지 않다면 cron 글을 읽는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.