¿Cómo hago para que systemd espere a que un servicio termine de cerrarse antes de cerrar otro?

¿Cómo hago para que systemd espere a que un servicio termine de cerrarse antes de cerrar otro?

Tengo dos servicios: mysql y liferay. El inicio de Liferay depende de MySQL, pero el cierre de Liferay también depende de MySQL. El problema es que systemd cerrará mysql antes de que finalice el cierre de liferay. Cuando ejecuto "systemctl stop mysql", comenzará a cerrar ambos servicios al mismo tiempo y liferay no tendrá ningún servicio mysql para finalizar su propio apagado.

Tengo el servicio de Liferay declarado así:

[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

¿Algunas ideas?

tia

Fernando

Respuesta1

Según el comentario de Gerald, parece que la respuesta es simplemente eliminar "Requires=".

Esta versión funciona:

[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

Gracias Gerardo!

información relacionada