私は一般的なシステムサービスの作成に精通しています。しかし、Wireguardの設定方法を学んでいる間、サービス名に「@」記号を見つけて、これが正確にどのように機能するのか疑問に思いました。
たとえば、wireguardでは、接続を設定してから独自の/etc/wireguard/wg0.conf
サービスファイルがあるかのように実行して接続を制御できます。という 2 番目のプロファイルを作成する場合を渡すことができます。sudo systemctl [enable|disable|start|stop|whatever] [email protected]
wg1.conf
[email protected]
これらすべてがとても便利です。しかし、どのように機能しますか?これを何と呼びますか?
ベストアンサー1
@
SystemDサービスのシンボルは、さまざまな構成/ターゲットを持つ複数の同じサービスを持つことができるように、変数を使用するサービスを作成するために使用されます。
したがって、この場合、構成を区別することができますが、他の多く(たとえばceph)で使用され、複数の同じサービスを実行できますが、異なるリソースを提供できます。
デフォルトでは、システムサービスファイルを作成するときにそれを使用すると、シンボルの後にあるすべてのエントリが%i
置き換えられます。@
@
したがって、次のようなコンテンツのみをエコーするワンタイムサービスを作成できます。
[Unit]
Description=Echo '%I'
[Service]
Type=oneshot
ExecStart=/bin/echo %i
StandardOutput=syslog
それ以降に入力した内容はすべて@
システムログに記録されます。
役に立ったことを願っています!