markboy's archive
Create TOC
2025년 7월 11일
wlan0 자동 재연결 설정
목차
이 문서는 `nmcli`와 `systemd`를 이용하여 무선 인터페이스 `wlan0`이 `disconnected` 상태일 때 자동으로 재연결하는 시스템을 구축하는 방법을 설명합니다. --- ## 스크립트 생성 아래와 같은 내용으로 `/usr/local/bin/check-wlan.sh` 파일을 생성합니다. ```bash #!/bin/bash IFNAME="wlan0" STATE=$(nmcli -t -f DEVICE,STATE dev | grep "^$IFNAME:" | cut -d: -f2) if [ "$STATE" = "disconnected" ]; then echo "$(date): $IFNAME is disconnected. Trying to reconnect..." >> /var/log/wlan-reconnect.log /usr/bin/nmcli connection up ifname "$IFNAME" >> /var/log/wlan-reconnect.log 2>&1 else echo "$(date): $IFNAME is $STATE. No action needed." >> /var/log/wlan-reconnect.log fi ``` 파일 생성 후 실행 권한을 부여합니다. ```bash $ sudo chmod +x /usr/local/bin/check-wlan.sh ``` ## systemd 서비스 작성 아래와 같은 내용으로 `/etc/systemd/system/check-wlan.service` 파일을 생성합니다. ```ini [Unit] Description=Check and reconnect wlan0 if disconnected Wants=network-online.target After=network-online.target [Service] Type=oneshot ExecStart=/usr/local/bin/check-wlan.sh ``` ## systemd 타이머 작성 아래와 같은 내용으로 `/etc/systemd/system/check-wlan.timer` 파일을 생성합니다. ```ini [Unit] Description=Run wlan0 checker every 2 minutes [Timer] OnBootSec=30sec OnUnitActiveSec=2min Persistent=true [Install] WantedBy=timers.target ``` ## 타이머 활성화 및 시작 ```bash $ sudo systemctl daemon-reload $ sudo systemctl enable --now check-wlan.timer ``` ## 동작 확인 타이머 상태 확인: ```bash $ systemctl list-timers | grep check-wlan ``` 서비스 로그 확인: ```bash $ journalctl -u check-wlan.service ``` 재연결 시도 로그 확인: ```bash cat /var/log/wlan-reconnect.log ```
이전 게시물
홈
피드 구독하기:
글 ( Atom )