ExecStop
起動できないと思われるデバイスに対してsystemdにコマンドを実行させる方法はありますか?
私はBuster-backportswireguardパッケージとwireguardのデフォルトのsystemdデバイス(以下の抜粋)を使ってDebian 10システムを実行しています。
デプロイメントをテストするときにsystemdを使用してトンネルが開始されましたが、エラーが発生したため、私の場合はトンネルが生成されましたが、終了コードのためにsystemdがトンネルに失敗しました。これはトンネルが実際に作成されたことを明確にwg show
示しており、すべてのパス/ルールが正しく追加されていないだけです。
PostUpを修正した後、1つが必要ですが、エラーが発生します。表示される出力を見てください。 Systemd はトンネルが最初から始まっていないかのように動作します。実行も試してみましたが、デバイスが起動できず、停止がないと思うので、systemdは何もしません。systemctl restart [email protected]
systemctl restart [email protected]
wg-quick: 'wg0' already exists
systemctl stop [email protected]
私は手動でタスクを実行して/usr/bin/wg-quick down wg0
systemdを幸せにするようにシステムを作成できることを知っていますが、systemdがサービス状態について混乱していて、何に関係なくExecStopコマンドを実行する必要があると信じる方法はありますか?状態は何だと思いますか?停止と言えば、systemdでExecStop停止を実行したいと思います!通過できる強制オプションや役に立つものがある場合、文書には表示されません。
cat /lib/systemd/system/[email protected]
[Unit]
Description=WireGuard via wg-quick(8) for %I
...
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/wg-quick up %i
ExecStop=/usr/bin/wg-quick down %i
Environment=WG_ENDPOINT_RESOLUTION_RETRIES=infinity
...