私はこれらのサービスファイルを書くのが初めてで、スタックとUnixのオーバーフローに関するいくつかのブログに従ってシステムサービスファイルを作成しました。
終了時に実行する必要があるスクリプトがあり、dockerデーモンを実行する必要があります。サービスファイルは次のとおりです
[Unit]
Description=Shutdown script
Before=shutdown.target
Requires=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStop=/path/to/script
[Install]
WantedBy=multi-user.target
シェルスクリプト(スクリプトの実行)に以下を追加して、インスタンスの起動スクリプトで上記のサービスを自動的に作成/有効にします。
chmod +x /path/to/script
if [ ! -f "/etc/systemd/system/path.service" ]; then
cp file/path.service /etc/systemd/system/path.service
systemctl daemon-reload
fi
systemctl enable path.service
終了するたびに実行したいのですが、インスタンスの起動時に実行されます。上記のサービスファイルに私が間違ったことがありますか?
答え1
[Install]
WantedBy=multi-user.target
終了時にサービスを実行するのではなく、起動時にサービスを実行してください。欲しい
[Install]
WantedBy=shutdown.target