Estou substituindo nosso antigo init.d
script Glassfish por um .service
arquivo. Eu quero a capacidade de iniciar/parar domínios um por um, mas também uma maneira rápida de iniciar/parar todos eles de uma vez.
Até agora, tenho isso como [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
Isso funciona e posso iniciar, parar e habilitar um único domínio como este:
systemctl start glassfish@domain1
No entanto, também gostaria de poder parar ou iniciar todos os domínios assim:
systemctl stop glassfish
Como posso conseguir isso? Além disso, como posso mostrar o status de cada instância de [email protected]
?
Atualmente estou pensando em escrever um script que é chamado a partir do .service
arquivo e realmente inicia/para os domínios, usando um conjunto padrão de parâmetros se nenhum for fornecido. Mas isso parece hacky e errado.
Eu mesmo descobri.
systemd
aparentemente suporta curingas. Então, depois de habilitar algumas instâncias, você pode facilmente parar todas elas assim:Aparentemente, o Ubuntu requer que você adicione um
--all
, então o comando total é