システムユニット名に「プレフィックスの最終コンポーネント」を使用する例は何ですか?

システムユニット名に「プレフィックスの最終コンポーネント」を使用する例は何ですか?

Systemdを使用すると、次の説明に従ってテンプレート単位を作成できます。システム装置

テンプレートセルでは、多くの変数を使用できます。

私は次に興味があります"%j"

これは、最後の「-」とプレフィックス名の末尾の間の文字列です。

「プレフィックス名」も定義されます。

インスタンス化されたセルの場合、セル名の最初の「@」文字の前にある文字列。

私は確信しています彼らは不明です。なぜ彼らは存在します。

私は彼らが同じサービスの複数のバージョンを実行していると思います。これがどのように使用されるかについての実際のケースは何ですか?

ベストアンサー1

.d/デバイスの横にあるディレクトリに追加の設定がある可能性があります。たとえば、foo.serviceに拡張できますfoo.service.d/*.conf

テンプレート単位はインスタンスとテンプレートという2つのディレクトリを使用するため、両方のディレクトリ[email protected]で拡張されます。[email protected]/*.conf そして [email protected]/*.conf。これにより、セルのすべてのインスタンスサイズを一度に調整できます。どちらの場合も、デバイスと拡張設定は%iを使用して「ttyS1」ビットを取得できます。

ただし、一部のユニットはテンプレート化できません。たとえば、スライス(cgroupを表す)はuser-<UID>.slice代わりに名前が付けられますuser@<UID>.slice。なぜなら、これらのユニットの名前はファイルシステムパス(ダッシュはスラッシュにマップされるため、「user-123.slice」は「user.slice」の子です)。

すべての個々のユーザースライスを構成できることが望ましいので(たとえば、各スライスにx%のメモリを提供する)、クラスパス名を使用するユニットにも同様のメカニズムが追加されました。上記のgettyの例と同様に、ユニットはuser-1000.slice両側で拡張できます。user-1000.slice.d/ そして user-.slice.d/、後者の通常のディレクトリにあるファイルは%jを使用して "1000"ビットを取得できます。

最後の例は、基本システムのインストールで実際に使用されます。

$ systemctl cat user-1000.slice
# /usr/lib/systemd/system/user-.slice.d/10-defaults.conf
[Unit]
Description=User Slice of UID %j

おすすめ記事