4

I have timer A that every few hours runs a script that runs service B(script with systemctl start in it). Then I would like to run service C after B is finished.

Here is my service C:

[Unit]
Description=lorem ipsum
Requires=B.service
After=B.service

[Service]
Type=oneshot
ExecStart=echo

B is also Type=oneshot.

Problem: after I invoke systemctl start B.service the C is not automatically launched. I doesn't have [Install] section because I don't want them to start on boot.

1

Your got it backwards. After does not specify that service Cneeds to be started, see systemd.unit for more information.

You want something like that as your configuration for service B:

[Unit]
Description=Your service C
Requires=C.service
Before=C.service
...
  • Yeah, I've figured that out, but it's not he best soultion. I more like concept of 'observable' so that B doesnt have to know about every other service that needs to be triggered after it. – Krever Apr 21 '16 at 5:14
  • It is probabably the best solution available. I can not find any directive that would allow this configuration without reconfiguration of service B – M. Glatki Apr 22 '16 at 9:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.