NetworkManagerが終了する前にsystemdを使用して実行可能ファイルを実行する方法

NetworkManagerが終了する前にsystemdを使用して実行可能ファイルを実行する方法

終了する前にNetworkManagerを実行する必要がある実行可能ファイルを実行しようとしています。これは現在持っているサービスファイル(/lib/systemd/systemにあります)で、イーサネット接続がある場合は正常に機能しますが、ワイヤレス接続のみがある場合は機能しません。

[Unit]
Requires=network.target
Requires=NetworkManager.service
Before=shutdown.target
After=network.target NetworkManager.service

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=MyShutdownExecutable

[Install]
wantedBy=multi-user.target

これは内蔵デバイスで実行され、ユーザーがイーサネット接続を使用している場合、ワイヤレス接続のみを使用する場合、両方を使用する場合があるため、すべてのネットワーク接続の組み合わせで機能する必要があります。

テストの終了中に、実行可能ファイルが実行される前にNetworkManagerが終了したというメッセージが表示されました。私のサービスファイルにAfter = NetworkManager.serviceを含めると、私の実行可能ファイルが完了するまでNetworkManagerが終了しないことを保証する必要があると思います。これはイーサネット接続がある場合のようです。

どんな助けでも大変感謝します。

ベストアンサー1

これをサービスファイルとして使用できますか?

[Unit]
After=wpa_supplicant.service dbus.service NetworkManager.service
Requires=wpa_supplicant.service dbus.service NetworkManager.service

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=MyShutdownExecutable

[Install]
WantedBy=multi-user.target

スクリプトを実行できました。 NetworkManagerがまだ実行されていても、wpaアプリケーションとdbusによってワイヤレス接続が失われました。

おすすめ記事