Wi-Fi 상태는 systemd 서비스에 의해 활성화되지만 사용자로 인증한 후에는 아무런 효과가 없습니다.

Wi-Fi 상태는 systemd 서비스에 의해 활성화되지만 사용자로 인증한 후에는 아무런 효과가 없습니다.

데비안 차단기가 있습니다. 내 임무는 Wi-Fi를 켜고 승인하기 전에 액세스 포인트에 연결하는 것입니다. 이를 위해 서비스를 사용하고 싶습니다 systemd. 나는 스크립트를 작성했습니다 :

/usr/sbin/ip link set wlo1 up
/usr/sbin/wpa_supplicant -B -D wext -i wlo1 -c /etc/wpa_supplicant.conf
/usr/sbin/dhclient wlo1

서비스에서 실행하면 systemd스크립트가 성공적으로 실행되었다고 표시됩니다. 하지만 사용자 인증을 받은 후에는 WLAN 상태가 DOWN입니다. 그렇게 말해보세요 ip a show wlo1. 예를 들어 다음과 같이 ping 8.8.8.8말해보세요 connect: Network is unreachable.

슈퍼유저 권한이 있는 사용자로 수동으로 실행하면 WLAN 상태가 성공적으로 설정되고 액세스 포인트에 연결되므로 스크립트가 작동해야 합니다.

내 시스템 서비스:

[Unit]
BindsTo=sys-subsystem-net-devices-wlo1.device
After=sys-subsystem-net-devices-wlo1.device
[Service]
Type=oneshot
ExecStart=/path/to/my_script.sh
[Install]
WantedBy=multi-user.target

명확히하겠습니다. 내 systemd서비스는 예상대로 시스템 부팅 시 시작됩니다. systemctl status서비스가 사이트의 모든 명령을 완료 ExecStart하고 작업을 성공적으로 완료했음을 나타냅니다. 다른 방법으로 문제를 해결하는 방법을 알고 싶지 않습니다. 이 방법이 왜 작동하지 않는지 알고 싶습니다.

답변1

기본값은 스크립트가 종료되면 KillMode=control-group지정된 대로 systemd가 프로세스를 종료하는 것입니다.wpa_supplicant일회용의유형 장치가 비활성 상태가 됩니다.

관련 정보