如何让 systemd 等待一个服务完成关闭后再关闭另一个服务?

如何让 systemd 等待一个服务完成关闭后再关闭另一个服务?

我有两个服务:mysql 和 liferay。Liferay 的启动依赖于 mysql,但 liferay 的关闭也依赖于 mysql。问题是 systemd 会在 liferay 的关闭完成之前关闭 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

根据杰拉尔德的评论,答案似乎只是删除“需要=”。

这个版本可以解决问题:

[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

谢谢杰拉尔德!

相关内容