On 2/2/19 4:03 PM, Tomasz Torcz wrote: > On Sat, Feb 02, 2019 at 03:03:22PM -0500, Steve Dickson wrote: >> >> >> On 2/2/19 2:48 PM, Tomasz Torcz wrote: >>> On Sat, Feb 02, 2019 at 02:42:15PM -0500, Steve Dickson wrote: >>>> Hello, >>>> >>>> In a.service I have >>>> >>>> [Unit] >>>> Before=b.service >>>> >>>> [Install] >>>> RequiredBy=b.service >>>> >>>> when I systemd start b.service (which happens to fail) >>>> but... a.service is not being run. >>>> >>>> So I guess my question is what do I have to do >>>> to ensure a.service is *always* run before b.service? >>> >>> Have you enabled a.service? >>> >> No... I did not think I had to... I figured >> when b.service was started, a.service would be >> run regardless of being enabled or disabled. >> >> Is that not the case? > > Not really. It would work, if you had in b.service line like > Requires=a.service (*). > But apparently you do not want to modify b.service, so you > put RequiredBy= in a.service's [Install] section. Directives > in [Install] section requires "systemctl enable" to have symlinks > created and to have effect. After enable, it will work identical to (*). > > Nb. most services have RequireBy=multi-user.target (or WantedBy=). For > such services, enabling mean they will start at boot (beacuse > multi-user.target is part of boot process). But there is not > requirement for services to be Wanted/Required by not boot-related > services and target. > Thus, you often find in tutorials assertion that > "systemctl enable" equals "start during boot". This is not true. It turns out I had a bug in my spec file logic which should have enabled the service... Thanks for the help! steved. > > _______________________________________________ systemd-devel mailing list systemd-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/systemd-devel