6

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.

Krever
  • 163
  • 5

1 Answers1

3

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
...
M. Glatki
  • 1,964
  • 1
  • 17
  • 33
  • 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 05: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 09:16