인터넷이 필요한 소프트웨어를 실행하는 Ubuntu 컴퓨터가 있습니다. 그러나 때로는 Wi-Fi가 실패하고 (예 : 라우터 재부팅) 네트워크 관리자를 수동으로 다시 시작하거나 Wi-Fi를 껐다 켜서 찾을 때까지 네트워크를 다시 찾지 못합니다.
연결을 모니터링하기 위해 cron 작업 또는 감독자 작업을 실행하고 네트워크를 찾을 수없는 경우 네트워크 관리자 서비스를 다시 시작하고 해당 특정 SSID에 연결할 수있는 방법이 있습니까?
인터넷이 필요한 소프트웨어를 실행하는 Ubuntu 컴퓨터가 있습니다. 그러나 때로는 Wi-Fi가 실패하고 (예 : 라우터 재부팅) 네트워크 관리자를 수동으로 다시 시작하거나 Wi-Fi를 껐다 켜서 찾을 때까지 네트워크를 다시 찾지 못합니다.
연결을 모니터링하기 위해 cron 작업 또는 감독자 작업을 실행하고 네트워크를 찾을 수없는 경우 네트워크 관리자 서비스를 다시 시작하고 해당 특정 SSID에 연결할 수있는 방법이 있습니까?
답변:
최근에이 문제가 발생하기 시작했기 때문에 새로운 네트워크 관리자 버그 때문일 수 있습니다. 우분투 15.04로 업그레이드 한 후 생각합니다.
이 두 파일의 해결 방법 으로이 문제를 일시적으로 해결 한 것 같습니다.
~/.bin/WiFi-Keep-Connected
:이 내용으로) WiFi를 켜고 끄는 스크립트 파일 이 있습니다.
#!/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
~/.config/autostart/KeepWifiConnected.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=
위 의 경로에 사용자 이름을 입력해야합니다 .
주의 : 때때로 이런 식으로 Wi-Fi 를 재시작 하는 것만으로는 충분하지 않습니다.이 경우 터미널에서이 명령을 한 번 또는 두 번 입력하여 Network Manager 를 다시 시작 해야합니다 .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
왜 그런지 모르겠지만 언급했듯이 때로는 Wi-Fi가 실패하면 네트워크 관리자가 네트워크를 다시 찾지 못합니다.
문제는 wifi 연결 실패 후 네트워크 관리자가 wifi 목록을 새로 고치지 않는다는 것입니다 (네트워크 관리자가 문제가있는 네트워크를 숨기고있는 것 같습니다). 네트워크 관리자에는 다시 검색 메뉴 옵션이 없으며 네트워크 관리자 메뉴에서 무선 확인란을 비활성화 및 활성화해도 서비스를 다시 시작하는 것처럼 새 wifi 스캔이 강제 실행되지 않습니다.
네트워크 관리자가 무선 연결을 잃어 버렸는데 Wi-Fi를 다시 찾지 못하면 (Wi-Fi가 작동하는 것으로 알고 있음) 다음 명령을 실행합니다.
sudo iwlist wlan0 scan
wlan0 인터페이스 (wlan0은 내 랩톱의 무선 인터페이스 이름)에서 Wi-Fi 스캔을 수행하고 사용 가능한 무선 네트워크를 표시하지만 부작용으로 네트워크 관리자가 목록을 자동으로 새로 고치고 손실 된 네트워크를 찾습니다.
이 문제가 발생하면 명령을 수동으로 실행하는 것을 선호합니다 (네트워크 재 연결은 통신 재개를 보장하지 않으며 일부 프로그램을 다시 시작해야합니다).
그러나 언급했듯이 연결을 테스트하지 않고도 할 수 있으며 스캔 프로세스는 wifi 목록을 업데이트하지만 연결되어 있으면 현재 무선 연결을 닫지 않습니다.
ping 또는 iwconfig를 사용하여 연결성을 테스트하고 연결되어 있지 않으면 스캔을 시작하십시오.
다음과 같은 것 :
#!/bin/bash
if ! ping -c 1 -W 1 your_router_ip &> /dev/null
then
iwlist wlan0 scan
fi
그러나이 스크립트는 루트 권한으로 sudo하거나 실행해야합니다. 1 초의 타임 아웃으로 1 개의 핑만 보냅니다.
라우터의 연결 문제로 인해 연결이 끊어지는 것처럼 문제가 발생한다고 생각합니다. 라우터 자체에 문제가있는 경우 네트워크 관리자를 다시 시작해도 도움이되지 않습니다. 오히려 연결이 끊어졌을 때 SIGSTOP을 사용하여 소프트웨어를 실행하는 프로세스를 일시 중단 하고 네트워크가 사용 가능 해지면 SIGCONT 를 계속 사용하도록 프로세스를 트리거 하는 스크립트를 작성할 수 있습니다. 그리고 스크립트를 cron 작업에 추가하여 1 분마다 실행되도록 예약하십시오.
참고로 : http://hints.macworld.com/article.php?story=20030915193440334
도움이 되었기를 바랍니다.