systemd - .service 默认参数

systemd - .service 默认参数

我正在init.d用一个文件替换旧的 Glassfish 脚本.service。我希望能够逐个启动/停止域,但也希望能够快速启动/停止所有域。

到目前为止,我有这样的[email protected]

[Unit]
Description=Glassfish4 Domain %i

[Service]
Type=forking
ExecStart=/opt/glassfish4/glassfish/bin/asadmin --passwordfile /my/pw/file start-domain %i
ExecStop=/opt/glassfish4/glassfish/bin/asadmin --passwordfile /my/pw/file stop-domain %i

TimeoutStartSec=300
TimeoutStopSec=300

[Install]
WantedBy=multi-user.target

这有效,我可以启动、停止和启用单个域,如下所示:

systemctl start glassfish@domain1

然而,我也希望能够停止或开始全部像这样的域:

systemctl stop glassfish

我怎样才能实现这个目标?另外,如何显示每个实例的状态[email protected]

我目前正在考虑编写一个从文件调用的脚本.service,并实际启动/停止域,如果未提供参数,则使用一组默认参数。但这感觉很古怪而且错误。

答案1

我自己想出来了。

systemd显然支持通配符。因此,一旦启用了某些实例,您就可以轻松地停止所有实例,如下所示:

systemctl stop 'glassfish@*'

显然,Ubuntu 要求您添加一个--all,所以总命令是

systemctl stop 'glassfish@*' --all

相关内容