core: make sure targets that get a default Conflicts=shutdown.target are also ordered against it
Let's tweak the automatic dependency generation of target units: not only add a Conflicts= towards shutdown.target but also an After= line for it, so that we can be sure the new target is not started when the old target is still up. Discovered in the context of #4733 (Also, exclude dependency generation if for shutdown.target itself. — This is strictly speaking redundant, as unit_add_two_dependencies_by_name() detects that and becomes a NOP, but let's make this explicit for readability.)
This commit is contained in:
committed by
Martin Pitt
parent
4549fcdb1d
commit
33e2818093
+4
-1
@@ -75,8 +75,11 @@ static int target_add_default_dependencies(Target *t) {
|
||||
return r;
|
||||
}
|
||||
|
||||
if (unit_has_name(UNIT(t), SPECIAL_SHUTDOWN_TARGET))
|
||||
return 0;
|
||||
|
||||
/* Make sure targets are unloaded on shutdown */
|
||||
return unit_add_dependency_by_name(UNIT(t), UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, NULL, true);
|
||||
return unit_add_two_dependencies_by_name(UNIT(t), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, NULL, true);
|
||||
}
|
||||
|
||||
static int target_load(Unit *u) {
|
||||
|
||||
Reference in New Issue
Block a user