"systemctl daemon-reload"は何をしますか?

私のサービスの1つが突然停止しました。サービスを再起動してみましたが、失敗して次の実行を求めるメッセージが表示されましたsystemctl daemon-reload

正確にどんな役割を果たしますか?何ですかdaemon-reload

ベストアンサー1

man systemctlが言った:

デーモンの再ロード

systemd 管理者構成を再ロードします。これにより、すべてのジェネレータが再度実行され(systemd.generator(7)を参照)、すべてのユニットファイルが再ロードされ、依存関係ツリー全体が再生成されます。デーモンが再ロードされると、ユーザーの代わりに受信するようにsystemdが構成されているすべてのソケットに引き続きアクセスできます。

このコマンドをreloadコマンドと混同しないでください。

したがって、本質的にこれは「ソフト」リロードです。ファイルシステムから変更された構成をインポートし、依存関係ツリーを再生成します。

したがって、次のようにsystemd.generator指定されます。

ジェネレーターは、/usr/lib/systemd/user-generators/ と上記の別のディレクトリにある小さなバイナリです。 systemd(1) は、起動時および構成の再ロード時に、つまりユニットファイルがロードされる前に、非常に早くこれらのバイナリを実行します。ジェネレータは、ユニットファイルを動的に生成したり、ユニットファイルへのシンボリックリンクを生成して、追加の依存関係を追加したり、既存の定義を拡張または上書きしたりできます。主な目的は、構成ファイルを非基本単位ファイルから基本単位ファイルに動的に変換することです。

ジェネレータは、上記のコンパイル中に決定された一連のパスからロードされます。システムジェネレータとユーザージェネレータは、名前がそれぞれsystem-generators /とuser-generators /で終わるディレクトリにロードされます。以前にリストされたディレクトリのジェネレータは、リストの下部ディレクトリにある同じ名前のジェネレータを上書きします。 / dev / nullへのシンボリックリンクまたは空のファイルを使用してジェネレータをブロックして実行を防ぐことができます。優先順位が最も高い2つのディレクトリの順序は、デバイスのロードパスに基づいて反転され、/runのジェネレータは/ etcのジェネレータをオーバーライドします。

新しいジェネレータをインストールするか、設定を更新した後にsystemctl daemon-reloadを実行できます。これにより、ジェネレータによって生成された以前の設定が削除され、すべてのジェネレータが再実行され、systemdがディスクからデバイスを再ロードします。詳細については、systemctl(1) を参照してください。

おすすめ記事