別のサービスをシャットダウンする前に、systemd がサービスのシャットダウンを完了するまで待機するようにするにはどうすればよいですか?

別のサービスをシャットダウンする前に、systemd がサービスのシャットダウンを完了するまで待機するようにするにはどうすればよいですか?

私は 2 つのサービスを持っています: mysql と liferay。liferay の起動は mysql に依存しますが、liferay のシャットダウンも mysql に依存します。問題は、liferay のシャットダウンが完了する前に systemd が mysql をシャットダウンすることです。「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

Gerald のコメントによると、答えは単に「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

ありがとう、ジェラルド!

関連情報