Fedora 33内の2つのコンテナで実行されるアプリケーションがあります。これらのコンテナは、すでにスクリプトがある特定の方法で停止する必要があります。コンテナがシャットダウンする前に常に正しく順番に停止するように、シャットダウンプロセスをカスタマイズしたいと思います。私が見つけたこれこれは、シャットダウンプロセスを開始する前にコンテナを直接停止できないことを示しているようです(systemctlがすべてを並列に停止するため)。ただし、shutdownコマンドは、一部のユーザーの場合は/usr/sbin/shutdown、rootユーザーの場合は/sbin/shutdownへのシンボリックリンクであり、どちらも/bin/systemctlを指すことがわかりました。
単にこれら2つのリンクを切断して、次のスクリプトに置き換えることができます。
#!/bin/bash
echo "doing stuff..."
/bin/systemctl
それとも、今後問題が発生しますか?もしそうなら、shutdownコマンドが呼び出されるたびに私のコンテナがシャットダウンする前に常に停止するようにするよりエレガントな方法はありますか?
答え1
あなたできるこうしてください。しかし……そうではありません。 Fedora Linux 33を使用しているため、セキュリティ更新プログラムを入手することはできませんが、そうするとセキュリティが混乱する可能性があります。
代わりに、systemdユニットを使用してコンテナを管理し(たとえば、コンテナごとに.service
ファイルを生成する)、法線またはAfter
メッセージRequires
を使用して依存関係を表現できます。