Hi, following
https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT/#how-to-adapt-this-scheme-to-other-setups
I've been experimenting on a fedora system
with systemd-boot-check-no-failures.service and the ability to have
services run "after" boot-complete.target. The basic use case would just to
have something that checks services are up and running, reach boot-complete
if they are, and start other services afterwards.
I've taken from that blog this piece specifically:
```
To support additional components that shall only run on boot success,
simply wrap them in a unit and order them after boot-complete.target,
pulling it in.
```
So I've done the following with an example service and by enabling :

# cat /etc/systemd/system/test.service
[Unit]
Description="Order after boot-complete.target, pulling it in"
After=boot-complete.target
Requires=boot-complete.target

[Service]
Type=oneshot
ExecStart=/usr/bin/echo "Additional component that shall only run on boot
success"
RemainAfterExit=yes

[Install]
WantedBy=default.target

# systemctl enable test.service  systemd-boot-check-no-failures.service
Created symlink /etc/systemd/system/default.target.wants/test.service →
/etc/systemd/system/test.service.
Created symlink
/etc/systemd/system/boot-complete.target.requires/systemd-boot-check-no-failures.service
→ /usr/lib/systemd/system/systemd-boot-check-no-failures.service.

# systemctl reboot

Unfortunately, the above results in:

systemd[1]: multi-user.target: Found ordering cycle on test.service/start
systemd[1]: multi-user.target: Found dependency on
boot-complete.target/start
systemd[1]: multi-user.target: Found dependency on
systemd-boot-check-no-failures.service/start
systemd[1]: multi-user.target: Found dependency on multi-user.target/start
systemd[1]: multi-user.target: Job test.service/start deleted to break
ordering cycle starting with multi-user.target/start

so what's the correct way to perform the mentioned "order [units] after
boot-complete.target", if they cannot be pulled in through the usual
default/multi-user targets? If I add DefaultDependencies=no to test.service
it now appears to work w/o the dependency cycle.

thanks!
-- 
Antonio (runcom) Murdaca
Principal Software Engineer
B056 8311 87B3 DDEB 25B5 01AF CC5C 9A81 EDCA D821

Reply via email to