diff options
author | Luca Boccassi <bluca@debian.org> | 2023-07-23 00:27:15 +0200 |
---|---|---|
committer | Luca Boccassi <bluca@debian.org> | 2023-07-23 00:27:27 +0200 |
commit | 3835b9aa4ba0094b06e9bf9b39786fe33d99ea1d (patch) | |
tree | be66ffdebbf3346a70daceddb8a7664c48e550b7 /src/core | |
parent | po: Translated using Weblate (Czech) (diff) | |
download | systemd-3835b9aa4ba0094b06e9bf9b39786fe33d99ea1d.tar.xz systemd-3835b9aa4ba0094b06e9bf9b39786fe33d99ea1d.zip |
Revert "core: add IgnoreOnSoftReboot= unit option"
The feature is not ready, postpone it
This reverts commit b80fc61e8971283606f9cd0a48e31d0f701c82f1.
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/dbus-unit.c | 4 | ||||
-rw-r--r-- | src/core/load-fragment-gperf.gperf.in | 1 | ||||
-rw-r--r-- | src/core/path.c | 16 | ||||
-rw-r--r-- | src/core/scope.c | 19 | ||||
-rw-r--r-- | src/core/service.c | 27 | ||||
-rw-r--r-- | src/core/slice.c | 20 | ||||
-rw-r--r-- | src/core/socket.c | 16 | ||||
-rw-r--r-- | src/core/target.c | 11 | ||||
-rw-r--r-- | src/core/timer.c | 16 | ||||
-rw-r--r-- | src/core/transaction.c | 5 | ||||
-rw-r--r-- | src/core/unit-serialize.c | 2 | ||||
-rw-r--r-- | src/core/unit.c | 41 | ||||
-rw-r--r-- | src/core/unit.h | 5 |
13 files changed, 41 insertions, 142 deletions
diff --git a/src/core/dbus-unit.c b/src/core/dbus-unit.c index bacdeb5aa3..629f08ebcc 100644 --- a/src/core/dbus-unit.c +++ b/src/core/dbus-unit.c @@ -921,7 +921,6 @@ const sd_bus_vtable bus_unit_vtable[] = { SD_BUS_PROPERTY("RefuseManualStop", "b", bus_property_get_bool, offsetof(Unit, refuse_manual_stop), SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_PROPERTY("AllowIsolate", "b", bus_property_get_bool, offsetof(Unit, allow_isolate), SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_PROPERTY("DefaultDependencies", "b", bus_property_get_bool, offsetof(Unit, default_dependencies), SD_BUS_VTABLE_PROPERTY_CONST), - SD_BUS_PROPERTY("IgnoreOnSoftReboot", "b", bus_property_get_bool, offsetof(Unit, ignore_on_soft_reboot), SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_PROPERTY("OnSuccesJobMode", "s", property_get_job_mode, offsetof(Unit, on_success_job_mode), SD_BUS_VTABLE_PROPERTY_CONST|SD_BUS_VTABLE_HIDDEN), /* deprecated */ SD_BUS_PROPERTY("OnSuccessJobMode", "s", property_get_job_mode, offsetof(Unit, on_success_job_mode), SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_PROPERTY("OnFailureJobMode", "s", property_get_job_mode, offsetof(Unit, on_failure_job_mode), SD_BUS_VTABLE_PROPERTY_CONST), @@ -2176,9 +2175,6 @@ static int bus_unit_set_transient_property( if (streq(name, "DefaultDependencies")) return bus_set_transient_bool(u, name, &u->default_dependencies, message, flags, error); - if (streq(name, "IgnoreOnSoftReboot")) - return bus_set_transient_bool(u, name, &u->ignore_on_soft_reboot, message, flags, error); - if (streq(name, "OnSuccessJobMode")) return bus_set_transient_job_mode(u, name, &u->on_success_job_mode, message, flags, error); diff --git a/src/core/load-fragment-gperf.gperf.in b/src/core/load-fragment-gperf.gperf.in index 1ac57c6364..b66adf2811 100644 --- a/src/core/load-fragment-gperf.gperf.in +++ b/src/core/load-fragment-gperf.gperf.in @@ -312,7 +312,6 @@ Unit.RefuseManualStart, config_parse_bool, Unit.RefuseManualStop, config_parse_bool, 0, offsetof(Unit, refuse_manual_stop) Unit.AllowIsolate, config_parse_bool, 0, offsetof(Unit, allow_isolate) Unit.DefaultDependencies, config_parse_bool, 0, offsetof(Unit, default_dependencies) -Unit.IgnoreOnSoftReboot, config_parse_bool, 0, offsetof(Unit, ignore_on_soft_reboot) Unit.OnSuccessJobMode, config_parse_job_mode, 0, offsetof(Unit, on_success_job_mode) Unit.OnFailureJobMode, config_parse_job_mode, 0, offsetof(Unit, on_failure_job_mode) {# The following is a legacy alias name for compatibility #} diff --git a/src/core/path.c b/src/core/path.c index c76110a02f..5fb14d9a10 100644 --- a/src/core/path.c +++ b/src/core/path.c @@ -342,24 +342,12 @@ static int path_add_default_dependencies(Path *p) { return r; if (MANAGER_IS_SYSTEM(UNIT(p)->manager)) { - r = unit_add_two_dependencies_by_name(UNIT(p), - UNIT_AFTER, - UNIT(p)->ignore_on_soft_reboot ? -EINVAL : UNIT_REQUIRES, - SPECIAL_SYSINIT_TARGET, - true, - UNIT_DEPENDENCY_DEFAULT); + r = unit_add_two_dependencies_by_name(UNIT(p), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SYSINIT_TARGET, true, UNIT_DEPENDENCY_DEFAULT); if (r < 0) return r; } - if (!UNIT(p)->ignore_on_soft_reboot) - return unit_add_two_dependencies_by_name( - UNIT(p), - UNIT_BEFORE, UNIT_CONFLICTS, - SPECIAL_SHUTDOWN_TARGET, true, - UNIT_DEPENDENCY_DEFAULT); - - return unit_add_dependencies_on_real_shutdown_targets(UNIT(p)); + return unit_add_two_dependencies_by_name(UNIT(p), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, true, UNIT_DEPENDENCY_DEFAULT); } static int path_add_trigger_dependencies(Path *p) { diff --git a/src/core/scope.c b/src/core/scope.c index a8461415bd..72253421e2 100644 --- a/src/core/scope.c +++ b/src/core/scope.c @@ -131,22 +131,23 @@ static void scope_set_state(Scope *s, ScopeState state) { } static int scope_add_default_dependencies(Scope *s) { + int r; + assert(s); if (!UNIT(s)->default_dependencies) return 0; /* Make sure scopes are unloaded on shutdown */ - if (!UNIT(s)->ignore_on_soft_reboot) - return unit_add_two_dependencies_by_name( - UNIT(s), - UNIT_BEFORE, UNIT_CONFLICTS, - SPECIAL_SHUTDOWN_TARGET, true, - UNIT_DEPENDENCY_DEFAULT); + r = unit_add_two_dependencies_by_name( + UNIT(s), + UNIT_BEFORE, UNIT_CONFLICTS, + SPECIAL_SHUTDOWN_TARGET, true, + UNIT_DEPENDENCY_DEFAULT); + if (r < 0) + return r; - /* Unless we are meant to survive soft reboot, in which case we need to conflict with - * non-soft-reboot targets. */ - return unit_add_dependencies_on_real_shutdown_targets(UNIT(s)); + return 0; } static int scope_verify(Scope *s) { diff --git a/src/core/service.c b/src/core/service.c index db289c7fbf..1b0af40b41 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -722,16 +722,11 @@ static int service_add_default_dependencies(Service *s) { * majority of services. */ if (MANAGER_IS_SYSTEM(UNIT(s)->manager)) { - /* First, pull in the really early boot stuff, and require it, so that we fail if we can't - * acquire it. But only add ordering if this is meant to survive a soft reboot, otherwise - * it will be pulled down. */ - - r = unit_add_two_dependencies_by_name(UNIT(s), - UNIT_AFTER, - UNIT(s)->ignore_on_soft_reboot ? -EINVAL : UNIT_REQUIRES, - SPECIAL_SYSINIT_TARGET, - true, - UNIT_DEPENDENCY_DEFAULT); + /* First, pull in the really early boot stuff, and + * require it, so that we fail if we can't acquire + * it. */ + + r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SYSINIT_TARGET, true, UNIT_DEPENDENCY_DEFAULT); if (r < 0) return r; } else { @@ -752,17 +747,7 @@ static int service_add_default_dependencies(Service *s) { return r; /* Third, add us in for normal shutdown. */ - if (!UNIT(s)->ignore_on_soft_reboot) - return unit_add_two_dependencies_by_name(UNIT(s), - UNIT_BEFORE, - UNIT_CONFLICTS, - SPECIAL_SHUTDOWN_TARGET, - true, - UNIT_DEPENDENCY_DEFAULT); - - /* Unless we are meant to survive soft reboot, in which case we need to conflict with - * non-soft-reboot targets. */ - return unit_add_dependencies_on_real_shutdown_targets(UNIT(s)); + return unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, true, UNIT_DEPENDENCY_DEFAULT); } static void service_fix_stdio(Service *s) { diff --git a/src/core/slice.c b/src/core/slice.c index 069bfe1ea8..490aabfd35 100644 --- a/src/core/slice.c +++ b/src/core/slice.c @@ -64,22 +64,22 @@ static int slice_add_parent_slice(Slice *s) { } static int slice_add_default_dependencies(Slice *s) { + int r; + assert(s); if (!UNIT(s)->default_dependencies) return 0; /* Make sure slices are unloaded on shutdown */ - if (!UNIT(s)->ignore_on_soft_reboot) - return unit_add_two_dependencies_by_name( - UNIT(s), - UNIT_BEFORE, UNIT_CONFLICTS, - SPECIAL_SHUTDOWN_TARGET, true, - UNIT_DEPENDENCY_DEFAULT); - - /* Unless we are meant to survive soft reboot, in which case we need to conflict with - * non-soft-reboot targets. */ - return unit_add_dependencies_on_real_shutdown_targets(UNIT(s)); + r = unit_add_two_dependencies_by_name( + UNIT(s), + UNIT_BEFORE, UNIT_CONFLICTS, + SPECIAL_SHUTDOWN_TARGET, true, UNIT_DEPENDENCY_DEFAULT); + if (r < 0) + return r; + + return 0; } static int slice_verify(Slice *s) { diff --git a/src/core/socket.c b/src/core/socket.c index 05a5e31be9..03b8cbd164 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -278,24 +278,12 @@ static int socket_add_default_dependencies(Socket *s) { return r; if (MANAGER_IS_SYSTEM(UNIT(s)->manager)) { - r = unit_add_two_dependencies_by_name(UNIT(s), - UNIT_AFTER, - UNIT(s)->ignore_on_soft_reboot ? -EINVAL : UNIT_REQUIRES, - SPECIAL_SYSINIT_TARGET, - true, - UNIT_DEPENDENCY_DEFAULT); + r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SYSINIT_TARGET, true, UNIT_DEPENDENCY_DEFAULT); if (r < 0) return r; } - if (!UNIT(s)->ignore_on_soft_reboot) - return unit_add_two_dependencies_by_name( - UNIT(s), - UNIT_BEFORE, UNIT_CONFLICTS, - SPECIAL_SHUTDOWN_TARGET, true, - UNIT_DEPENDENCY_DEFAULT); - - return unit_add_dependencies_on_real_shutdown_targets(UNIT(s)); + return unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, true, UNIT_DEPENDENCY_DEFAULT); } _pure_ static bool socket_has_exec(Socket *s) { diff --git a/src/core/target.c b/src/core/target.c index 3cb17b9843..3519b4b653 100644 --- a/src/core/target.c +++ b/src/core/target.c @@ -66,16 +66,7 @@ static int target_add_default_dependencies(Target *t) { return 0; /* Make sure targets are unloaded on shutdown */ - if (!UNIT(t)->ignore_on_soft_reboot) - return unit_add_two_dependencies_by_name( - UNIT(t), - UNIT_BEFORE, UNIT_CONFLICTS, - SPECIAL_SHUTDOWN_TARGET, true, - UNIT_DEPENDENCY_DEFAULT); - - /* Unless we are meant to survive soft reboot, in which case we need to conflict with - * non-soft-reboot targets. */ - return unit_add_dependencies_on_real_shutdown_targets(UNIT(t)); + return unit_add_two_dependencies_by_name(UNIT(t), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, true, UNIT_DEPENDENCY_DEFAULT); } static int target_load(Unit *u) { diff --git a/src/core/timer.c b/src/core/timer.c index 3aaebe72c6..f6e6605507 100644 --- a/src/core/timer.c +++ b/src/core/timer.c @@ -94,12 +94,7 @@ static int timer_add_default_dependencies(Timer *t) { return r; if (MANAGER_IS_SYSTEM(UNIT(t)->manager)) { - r = unit_add_two_dependencies_by_name(UNIT(t), - UNIT_AFTER, - UNIT(t)->ignore_on_soft_reboot ? -EINVAL : UNIT_REQUIRES, - SPECIAL_SYSINIT_TARGET, - true, - UNIT_DEPENDENCY_DEFAULT); + r = unit_add_two_dependencies_by_name(UNIT(t), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SYSINIT_TARGET, true, UNIT_DEPENDENCY_DEFAULT); if (r < 0) return r; @@ -117,14 +112,7 @@ static int timer_add_default_dependencies(Timer *t) { } } - if (!UNIT(t)->ignore_on_soft_reboot) - return unit_add_two_dependencies_by_name( - UNIT(t), - UNIT_BEFORE, UNIT_CONFLICTS, - SPECIAL_SHUTDOWN_TARGET, true, - UNIT_DEPENDENCY_DEFAULT); - - return unit_add_dependencies_on_real_shutdown_targets(UNIT(t)); + return unit_add_two_dependencies_by_name(UNIT(t), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, true, UNIT_DEPENDENCY_DEFAULT); } static int timer_add_trigger_dependencies(Timer *t) { diff --git a/src/core/transaction.c b/src/core/transaction.c index e47ddf0dd4..ffc063a684 100644 --- a/src/core/transaction.c +++ b/src/core/transaction.c @@ -628,7 +628,7 @@ static int transaction_apply( HASHMAP_FOREACH(j, m->jobs) { assert(j->installed); - if (j->unit->ignore_on_isolate || j->unit->ignore_on_soft_reboot) + if (j->unit->ignore_on_isolate) continue; if (hashmap_contains(tr->jobs, j->unit)) @@ -1159,9 +1159,6 @@ static bool shall_stop_on_isolate(Transaction *tr, Unit *u) { if (u->ignore_on_isolate) return false; - if (u->ignore_on_soft_reboot) - return false; - /* Is there already something listed for this? */ if (hashmap_contains(tr->jobs, u)) return false; diff --git a/src/core/unit-serialize.c b/src/core/unit-serialize.c index e96af71634..cb209c5bde 100644 --- a/src/core/unit-serialize.c +++ b/src/core/unit-serialize.c @@ -830,7 +830,6 @@ void unit_dump(Unit *u, FILE *f, const char *prefix) { "%s\tRefuseManualStart: %s\n" "%s\tRefuseManualStop: %s\n" "%s\tDefaultDependencies: %s\n" - "%s\tIgnoreOnSoftReboot: %s\n" "%s\tOnSuccessJobMode: %s\n" "%s\tOnFailureJobMode: %s\n" "%s\tIgnoreOnIsolate: %s\n", @@ -838,7 +837,6 @@ void unit_dump(Unit *u, FILE *f, const char *prefix) { prefix, yes_no(u->refuse_manual_start), prefix, yes_no(u->refuse_manual_stop), prefix, yes_no(u->default_dependencies), - prefix, yes_no(u->ignore_on_soft_reboot), prefix, job_mode_to_string(u->on_success_job_mode), prefix, job_mode_to_string(u->on_failure_job_mode), prefix, yes_no(u->ignore_on_isolate)); diff --git a/src/core/unit.c b/src/core/unit.c index 468b193acd..6792bda9d0 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -3291,48 +3291,21 @@ int unit_add_dependency( } int unit_add_two_dependencies(Unit *u, UnitDependency d, UnitDependency e, Unit *other, bool add_reference, UnitDependencyMask mask) { - int r = 0, s = 0; + int r, s; assert(u); - assert(d >= 0 || e >= 0); - if (d >= 0) { - r = unit_add_dependency(u, d, other, add_reference, mask); - if (r < 0) - return r; - } + r = unit_add_dependency(u, d, other, add_reference, mask); + if (r < 0) + return r; - if (e >= 0) { - s = unit_add_dependency(u, e, other, add_reference, mask); - if (s < 0) - return s; - } + s = unit_add_dependency(u, e, other, add_reference, mask); + if (s < 0) + return s; return r > 0 || s > 0; } -int unit_add_dependencies_on_real_shutdown_targets(Unit *u) { - int r; - - assert(u); - - STRV_FOREACH(target, STRV_MAKE(SPECIAL_REBOOT_TARGET, - SPECIAL_KEXEC_TARGET, - SPECIAL_HALT_TARGET, - SPECIAL_POWEROFF_TARGET)) { - r = unit_add_two_dependencies_by_name(u, - UNIT_BEFORE, - UNIT_CONFLICTS, - *target, - /* add_reference= */ true, - UNIT_DEPENDENCY_DEFAULT); - if (r < 0) - return r; - } - - return 0; -} - static int resolve_template(Unit *u, const char *name, char **buf, const char **ret) { int r; diff --git a/src/core/unit.h b/src/core/unit.h index 6aa8b82ed8..c0710299a5 100644 --- a/src/core/unit.h +++ b/src/core/unit.h @@ -450,9 +450,6 @@ typedef struct Unit { /* Create default dependencies */ bool default_dependencies; - /* Configure so that the unit survives a soft reboot without stopping/starting. */ - bool ignore_on_soft_reboot; - /* Refuse manual starting, allow starting only indirectly via dependency. */ bool refuse_manual_start; @@ -855,8 +852,6 @@ int unit_add_dependency_by_name(Unit *u, UnitDependency d, const char *name, boo int unit_add_two_dependencies_by_name(Unit *u, UnitDependency d, UnitDependency e, const char *name, bool add_reference, UnitDependencyMask mask); int unit_add_exec_dependencies(Unit *u, ExecContext *c); -/* Helper for IgnoreOnSoftReboot units that need to survive soft-reboot.target but not others */ -int unit_add_dependencies_on_real_shutdown_targets(Unit *u); int unit_choose_id(Unit *u, const char *name); int unit_set_description(Unit *u, const char *description); |