내 시스템에서 연결된 Wi-Fi 신호의 품질을 확인하려면 Wi-Fi에 연결하는 데 사용하는 장치 인터페이스의 이름이 sudo iwconfig wlp6s0
어디에 있는지 실행해야 합니다 . wlp6s0
run 명령을 사용하지 않으면 출력에 링크 품질이나 신호 레벨이 표시되지 않습니다 sudo
. 그러나 예를 들어 Wi-Fi를 nmcli
사용하지 않고도 Wi-Fi 의 신호 강도를 얻을 수 있습니다.sudo
nmcli dev wifi
을 실행할 때 출력에 다음 줄에 표시된 것처럼 시스템 호출을 sudo strace iwconfig wlp6s0
사용하는 것으로 나타났습니다 .ioctl
strace
ioctl(3, SIOCGIWSTATS, 0x7ffd1bd7e960) = 0
strace nmcli dev wifi
그러나 Wi-Fi 신호 강도나 관련 정보를 얻는 데 동일한 시스템 호출이 사용되지 않는 것으로 나타났습니다 .
nmcli
을 사용하지 않고 Wi-Fi 신호 강도를 표시하는 데 필요한 정보를 얻는 방법을 알고 싶습니다 sudo
.
편집: strace
두 가지 모두에 대한 출력:
전체 출력
strace nmcli dev wifi
:https://pastebin.com/NdqBfC8W전체 출력
sudo strace iwconfig wlp6s0
:https://pastebin.com/5w0Grwze
답변1
D-Bus를 사용하여 네트워크 관리자 서비스에 접속할 수 있으며 네트워크 관리자 서비스는 루트로 실행 중입니다.
~ ps -o pid,user,cmd -C NetworkManager
PID USER CMD
894 root /usr/sbin/NetworkManager --no-daemon
답변2
그래요아니요/sbin/iw wlan0 station dump
루트 없이 신호 강도를 표시하려면 네트워크 관리자를 실행하세요 .
을 실행하면 strace
NETLINK 소켓이 생성되고 해당 소켓에서 데이터를 가져오는 것으로 나타납니다. 자세한 내용은 소스를 읽어봐야 할 것 같습니다 iw
.