我看过类似的问题,但没有一个涉及到我所面临的情况。我的服务A定义如下(注意)。
另一个服务 B 需要在服务 A 完成后才能运行。我尝试了以下方法,但似乎服务 B 在服务 A 启动后立即启动。服务 B 没有等待 A 完成。
[Unit]
Description=Sample service A
Before=shutdown.target
After=multi-user.target
Requires=multi-user.target
Conflicts=shutdown.target
[Service]
Type=simple
RemainAfterExit=yes
Restart=no
ExecStart=/etc/rc.d/init.d/script_a start
ExecStop=/etc/rc.d/init.d/script_a stop
[Install]
RequiredBy=random.target
另一个服务 B 需要在服务 A 完成后才能运行。我尝试了以下方法,但似乎服务 B 在服务 A 启动后立即启动。服务 B 没有等待 A 完成。
[Unit]
Description=Sample service B
After=serviceA.service
Requires=serviceA.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/etc/init.d/scriptb start
[Install]
RequiredBy=random.target
如何让服务B等待直到A完成?
编辑
我还尝试将OnSuccess=serviceB.service
放在服务A中,但没有帮助。