데비안 차단기가 있습니다. 내 임무는 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
일회용의유형 장치가 비활성 상태가 됩니다.