RedHat 8.9 在 Requires 指令中支持多个服务依赖关系

RedHat 8.9 在 Requires 指令中支持多个服务依赖关系

感谢您调查这个问题。

我有一个 Systemd 服务,我们将其称为 main-application.service,它需要在启动自身之前先启动服务 testA.service 和 testB.service。以下是服务实现(目录位置 - /usr/lib/systemd/system)

main-application.service 文件

[Unit]
Description=Main App
After=testA.service
After=testB.service
Requires=testA.service testB.service

[Service]
EnvironmentFile=/appl/main-application/env-1.conf
EnvironmentFile=/appl/main-application/env-2.conf
ExecStart=/usr/bin/java -jar $EXEC_PATH --spring.config.location=file:/appl/main-application/app.properties
User=root
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

测试A.服务

[Unit]
Description=SVC A
After=syslog.target

[Service]
Type=oneshot
ExecStart=/appl/service-a/main.sh
User=root

[Install]
WantedBy=multi-user.target

测试B.服务

[Unit]
Description=SVC B
After=syslog.target

[Service]
Type=oneshot
ExecStart=/appl/service-b/main.sh
User=root

[Install]
WantedBy=multi-user.target

我们希望测试服务 A 和 B 都在主应用服务之前执行,没有顺序要求。我仍然在主服务中指定了“After”指令,希望它能起作用,但事实并非如此。奇怪的是,当我重新启动主应用服务时,它会随机启动测试服务 A 或 B,但不会同时启动两者。

操作系统——Redhat 8.9

您能给出建议吗?提前谢谢您!

相关内容