Как заставить systemd дождаться завершения работы одной службы, прежде чем завершать работу другой?

Как заставить systemd дождаться завершения работы одной службы, прежде чем завершать работу другой?

У меня есть две службы: mysql и liferay. Запуск Liferay зависит от mysql, но shutdown liferay также зависит от mysql. Проблема в том, что systemd завершит работу mysql до того, как завершится работа liferay. Когда я запускаю "systemctl stop mysql", он одновременно завершит работу обеих служб, и у liferay не будет службы mysql, которая могла бы завершить свою работу.

У меня служба Liferay объявлена ​​следующим образом:

[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

Есть идеи?

ТИА

Фернандо

решение1

Согласно комментарию Джеральда, похоже, ответ заключается в том, чтобы просто удалить «Requires=».

Эта версия делает свое дело:

[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

Спасибо, Джеральд!

Связанный контент