“[email protected]”中的“@”是什么意思?

“[email protected]”中的“@”是什么意思?

我熟悉创建普通的 systemd 服务。然而,在学习如何配置wireguard时,我在服务名称中遇到了“@”符号,并且想知道它到底是如何工作的。

例如,在wireguard中,您可以配置一个连接,/etc/wireguard/wg0.conf然后通过运行来控制该连接,就像它拥有自己的服务文件一样。如果您创建第二个名为 的配置文件,您可以通过.sudo systemctl [enable|disable|start|stop|whatever] [email protected]wg1.conf[email protected]

这一切都非常方便,但是它是如何工作的呢?这叫什么?

答案1

@SystemD 服务中的符号用于创建采用变量的服务,以便您可以拥有多个具有不同配置/目标的相同服务。

因此,在这种情况下,它允许您区分配置,但它被许多其他事物(例如 ceph)使用,以允许您运行多个相同的服务,但提供不同的资源。

基本上,当您创建 systemd 服务文件时,您可以使用%i它,它将替换@符号后面的任何内容。

因此,您可以创建一个一次性服务,只回显后面的内容,如下@所示

[Unit]
Description=Echo '%I'

[Service]
Type=oneshot
ExecStart=/bin/echo %i
StandardOutput=syslog

您在 后面放置的任何内容@都会放入系统日志中。

希望有帮助!

相关内容