我正在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