Tenho dois serviços: mysql e liferay. O início do Liferay depende do mysql, mas o desligamento do liferay também depende do mysql. O problema é que o systemd desligará o mysql antes que o desligamento do liferay termine. Quando eu executo "systemctl stop mysql" ele começará a desligar os dois serviços ao mesmo tempo e o liferay não terá nenhum serviço mysql para terminar seu próprio desligamento.
Tenho o serviço do Liferay declarado assim:
[Unit]
Description=Liferay Portal
After=network.target,mysql.service
Requires=mysql.service
[Service]
Type=forking
WorkingDirectory=/opt/liferay
ExecStart=/opt/liferay/liferay-ce-portal/tomcat/bin/startup.sh
User=liferay
Group=liferay
Restart=always
[Install]
WantedBy=multi-user.target
Alguma ideia?
TIA
Fernando
Responder1
De acordo com o comentário de Gerald, parece que a resposta é simplesmente remover "Requires=".
Esta versão resolve o problema:
[Unit]
Description=Liferay Portal
After=mysql.service
[Service]
Type=forking
WorkingDirectory=/opt/liferay
ExecStart=/opt/liferay/liferay-ce-portal/tomcat/bin/startup.sh
User=liferay
Group=liferay
Restart=always
[Install]
WantedBy=multi-user.target
Obrigado Geraldo!