
これらはすべてユニット ファイルであることはわかっていますが、それらの特別な意味が理解できません。ターゲットはデーモンに似ており、ソケットはソケット (IP + ポート) と同じですが、inode 番号も付いていると思います。誰か簡単な言葉で説明してもらえませんか?
答え1
サービスユニット:
A unit configuration file whose name ends in .service encodes information about a process controlled and supervised by systemd.
Systemd サービス ユニットは、プログラムとデーモンを実際に実行して追跡するユニットであり、依存関係はサービスが正しい順序で開始されることを確認するために使用されます。これらは最も一般的に使用されるタイプのユニットです。
ソケットユニット:
A unit configuration file whose name ends in ".socket" encodes information about an IPC or network socket or a file system FIFO controlled and supervised by systemd, for socket-based activation.
一方、ソケット ユニットは、実際にはデーモンを独自に起動しません。代わりに、ソケット ユニットはただそこに待機して IP アドレスとポート、または UNIX ドメイン ソケットをリッスンし、何かが接続すると、ソケットの対象となるデーモンが起動され、接続がデーモンに渡されます。
これは、大量のリソースを消費するがめったに使用されない大きなデーモンが常に実行されてリソースを消費するのではなく、必要なときにのみ起動されるようにするのに役立ちます。
対象ユニット:
A unit configuration file whose name ends in ".target" encodes information about a target unit of systemd, which is used for grouping units and as well-known synchronization points during start-up.
ターゲットは、ユニットをグループ化して順序付けるために使用されます。ターゲットは、異なるターゲットで異なるサービス、ソケット、およびその他のユニットが開始されるという点で、ランレベルとほぼ同等です。ランレベルとは異なり、ターゲットはより自由な形式であり、ユニットを順序付けるための独自のターゲットを簡単に作成できます。また、ターゲット同士は依存関係を持ちます。
たとえば、multi-user.target
ほとんどのデーモンは の下にグループ化されており、これをbasic.target
アクティブ化する必要があります。つまり、 の下にグループ化されているすべてのサービスはbasic.target
内のサービスよりも先に開始されますmulti-user.target
。
答え2
systemdのドキュメントは、比較的新しいプロジェクトとしては素晴らしいものです。まずはターゲット、からman systemd.target
:
ターゲット ユニットは、ユニットによって提供される一般的な機能以外には、追加の機能を提供しません。ターゲット ユニットは、依存関係を介してユニットをグループ化するため (ブート ターゲットとして便利)、およびユニット間の依存関係で使用される同期ポイントの標準化された名前を確立するためにのみ存在します。とりわけ、ターゲット ユニットは、従来の SysV init システムにおける SysV ランレベルのより柔軟な代替品です。
これらの「ユニット グループ」は、basic.target
システムの起動から、dbus、getty、マウント ポイント、スワップ、タイマーまで、さまざまな機能をカバーします。 で完全なリストを確認できますman systemd.special
。
サービスファイルは、systemd によって制御されるプロセスを実行するための基本単位です。ここでも、次のようになりますman systemd.service
。
名前が .service で終わるユニット構成ファイルは、systemd によって制御および監視されるプロセスに関する情報をエンコードします。
これらは、起動、停止、再起動、再ロードできるデーモンを構成します。
ついに、ソケット、からman systemd.socket
:
名前が「.socket」で終わるユニット構成ファイルは、ソケットベースのアクティベーションのために、systemd によって制御および監視される IPC またはネットワーク ソケット、またはファイル システム FIFO に関する情報をエンコードします。
これらは、ファイル システムまたはインターネット上のソケット、およびトランスポートとしての従来の FIFO をカバーします。各ソケット ユニットには対応するサービス ユニットがあり、ソケットまたは FIFO に最初の接続が着信すると開始されます。
これらのページに加えてman
、レナートのブログ投稿シリーズも読む価値があります。管理者向け systemdでは、systemd のアーキテクチャと実装について詳しく説明します (現在、このシリーズには 20 件の投稿があります)。