nm-online은 NetworkManager에 연결 상태를 질의하고 active connection 또는 startup 완료를 제한 시간까지 기다리는 utility다. 성공 여부는 출력보다 exit status로 판단한다.
sudo apt update sudo apt install network-manager # Debian, Ubuntu sudo dnf install NetworkManager # Fedora, RHEL 계열 nm-online --help
NetworkManager는 Linux daemon이므로 macOS Homebrew와 Windows winget용 공식 package는 제공되지 않는다.
nm-online [OPTIONS]
nm-online -q, –quiet: 출력을 생략한다.nm-online -s, –wait-for-startup: 연결성 대신 NetworkManager startup 완료를 기다린다.nm-online -t, –timeout SECONDS: 대기 제한 시간을 지정한다. 기본값은 30초다.nm-online -x, –exit: NetworkManager가 실행 중이 아니거나 연결 중이 아니면 즉시 종료한다.if nm-online -q -t 15; then echo "NetworkManager reports an active connection" else echo "Network unavailable or timed out" >&2 fi nm-online -q -s -t 60
-s는 boot 시 모든 사용 가능한 autoconnect profile의 활성화 시도가 끝나는 시점을 기다린다. 이미 startup이 끝났다면 현재 연결성 여부와 관계없이 즉시 성공할 수 있으므로 일반적인 online 검사와 혼동하지 않는다.
| Status | 의미 |
|---|---|
0 | 이미 online이거나 제한 시간 안에 연결 또는 요청한 startup 상태에 도달함 |
1 | offline이거나 제한 시간 안에 online이 되지 않음 |
2 | 알 수 없거나 명시되지 않은 오류 |
NetworkManager-wait-online.service는 boot ordering을 위해 nm-online -s를 사용한다. 서비스가 오래 기다리면 단순히 timeout을 줄이기 전에 autoconnect profile, carrier, DHCP와 address-family 완료 조건을 확인한다.
systemctl status NetworkManager-wait-online.service journalctl -u NetworkManager-wait-online.service -b nmcli connection show
특정 address family가 반드시 준비되어야 한다면 해당 profile의 ipv4.may-fail 또는 ipv6.may-fail 값을 요구 조건에 맞게 검토한다.