答案1
参数通常存在于服务文件的行中ExecStart=
。
# /lib/systemd/system/myservice.service
[Unit]
ExecStart=/bin/myprogram arg1 arg2
您提供的链接之一使用模板化的定义参数之一的服务
# /lib/systemd/system/[email protected]
[Unit]
ExecStart=/bin/myprogram %i
[Install]
WantedBy=multi-user.target
这将允许您使用不同的参数启用同一服务的多个实例。
systemctl enable --now [email protected]
systemctl enable --now [email protected]
这将导致两个实例运行,并具有不同的参数: /bin/myprogram arg1
和/bin/myprogram/arg2
。
是否可以在不打开 GUI 的情况下启动服务?
现在你变得具体了。听起来你有一个服务可以启动一个管理 docker 的 GUI。在这种情况下,我怀疑systemd
是错误的地方。您docker-desktop.service
可能不运行任何容器,而只是提供一个接口来与运行的服务进行交互。该服务可以将所有容器实例作为子进程进行管理,而无需systemd
参与。
看看(只是猜测)
systemctl list-units *docker*
我打赌这将揭示负责管理容器的实际服务。
Docker 容器通常不需要这样的执行程序,并且通常可以通过 systemd 来管理它们,但是您需要.service
为每个容器拥有一个文件,每个容器都有自己的一组参数。