Open q66 opened 9 months ago
For clarity on what is wanted here: supposing that your firewall
fails and causes network.target
to fail as a result. Then the user (sysadmin) issues:
dinitctl start network.target
What is the expected outcome? I think you're probably going to want this to either fail immediately, or at least to try and re-start the firewall
before allowing network.target
to start? In that case this is less like a "before" and more like an actual (reverse) dependency. This could still be implemented, but I'd probably lean away from before-ms
as a setting name in that case.
i was thinking the network.target could just come up regardless of the status of firewall in this case, but i'm fine with any behavior here (the user is not meant to start targets manually, and if they do, they're aware of the consequences)
Let's say we have a service,
foo.target
and a servicefoo
that is set asbefore = foo.target
, and another servicebar
that hasdepends-on = foo.target
. The order of startup will befoo => foo.target => bar
in this case.However, there is no way to control what happens when
foo
fails to come up. I'd like to be able to make sure that iffoo
fails to come up,foo.target
also fails. This can currently only be done by having the startup sequence offoo
manually add a regular or milestone dependency fromfoo.target
tofoo
.The intended use of this is for firewall services, so their failure can abort the startup of further network services, but without the network services depending on a particular firewall. Currently we have a
pre-network.target
internal service which things that expect firewall to be up depend on. By having firewalls specify something likebefore-ms = pre-network.target
instead of the currentbefore = pre-network.target
, we could achieve this more cleanly.