Wi-Fiステータスはsystemdサービスによって有効になりますが、ユーザーとして認証した後は何も起こりません。

Wi-Fiステータスはsystemdサービスによって有効になりますが、ユーザーとして認証した後は何も起こりません。

Debian ブレーカーがあります。私の使命は、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使い捨てタイプデバイスが非アクティブになります。

関連情報