Como faço para o systemd esperar que um serviço termine o desligamento antes de desligar outro?

Como faço para o systemd esperar que um serviço termine o desligamento antes de desligar outro?

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!

informação relacionada