systemd 서비스에서 wpa_supplicant 제어 소켓과 통신할 때 wpa_cli 명령 시간 초과가 발생하는 이유는 무엇입니까?

systemd 서비스에서 wpa_supplicant 제어 소켓과 통신할 때 wpa_cli 명령 시간 초과가 발생하는 이유는 무엇입니까?

wpa_cliWi-Fi 상태를 확인하기 위해 Python 프로그램에서 명령을 실행하고 있습니다. 유틸리티가 요청자 프로세스와 통신할 수 있는지 확인하는 일반적인 명령은 다음과 같습니다.

/sbin/wpa_cli -iwlext ping

프로그램을 수동으로 실행하거나 위 명령을 수동으로 테스트하면 제대로 작동합니다.

위 명령으로 프로세스를 시작하면 systemd프로세스 내부에서 실행할 때 시간이 초과됩니다.

'PING' command timed out.

컨트롤 소켓을 통해 메인 프로세스와 통신이 안되는 이유를 진단하려고 합니다.

  • 프로세스는 wpa_cli 명령을 호출할 수 있습니다(실행하고 출력을 볼 수 있습니다 wpa_cli -v).
  • 프로세스는 iface 제어 소켓을 볼 수 있습니다 /var/run/wpa_supplicant/wlext(실행할 수 있음 ls -la등).

답변1

Python 프로세스의 시스템 단위는 다음과 같습니다.

PrivateTmp=true

프로세스를 어느 정도 격리합니다.

cli 가 연결할 기본 프로세스 소켓에 대한 false클라이언트 소켓을 빌드할 수 있도록 하려면 이를 설정합니다 ./tmp

관련 정보