From: Zbigniew Jędrzejewski-Szmek Date: Wed, 12 Jul 2023 12:32:54 +0000 (+0200) Subject: Revert "pid1: order units using TTYVHangup= after vconsole setup" X-Git-Tag: v254-rc2~3^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=84214541fa294a5d8a5394405918d5434bd4d01d;p=thirdparty%2Fsystemd.git Revert "pid1: order units using TTYVHangup= after vconsole setup" This reverts commit e019ea738d63d5f7803f378f8bd3e074d66be08f. In the new approach, a lock on /dev/console will be used. This lock will solve the issue for services which run in early boot. Services which run later are ordered after sysinit.target, so they'll run much later anyway so this automatic dependency is not useful. Let's remove it again to make the code simpler. --- diff --git a/man/systemd.exec.xml b/man/systemd.exec.xml index e0774073677..c3df4166d55 100644 --- a/man/systemd.exec.xml +++ b/man/systemd.exec.xml @@ -70,12 +70,8 @@ Units whose standard output or error output is connected to or (or their combinations with console output, see below) automatically acquire - dependencies of type After= on systemd-journald.socket. - - - Units using the terminal (standard input, output, or error are connected to a terminal - or TTYPath= is used) automatically acquire an After= dependency - on systemd-vconsole-setup.service. + dependencies of type After= on + systemd-journald.socket. Units using LogNamespace= will automatically gain ordering and requirement dependencies on the two socket units associated with diff --git a/src/basic/special.h b/src/basic/special.h index bc9c9eb011c..b7760079a27 100644 --- a/src/basic/special.h +++ b/src/basic/special.h @@ -86,7 +86,6 @@ #define SPECIAL_QUOTACHECK_SERVICE "systemd-quotacheck.service" #define SPECIAL_QUOTAON_SERVICE "quotaon.service" #define SPECIAL_REMOUNT_FS_SERVICE "systemd-remount-fs.service" -#define SPECIAL_VCONSOLE_SETUP_SERVICE "systemd-vconsole-setup.service" #define SPECIAL_VOLATILE_ROOT_SERVICE "systemd-volatile-root.service" #define SPECIAL_UDEVD_SERVICE "systemd-udevd.service" #define SPECIAL_GROWFS_SERVICE "systemd-growfs@.service" diff --git a/src/core/execute.c b/src/core/execute.c index 445983bfb62..3a0d289fa55 100644 --- a/src/core/execute.c +++ b/src/core/execute.c @@ -7219,16 +7219,6 @@ bool exec_context_has_encrypted_credentials(ExecContext *c) { return false; } -int exec_context_add_default_dependencies(Unit *u, const ExecContext *c) { - assert(u); - assert(u->default_dependencies); - - if (c && exec_context_needs_term(c)) - return unit_add_dependency_by_name(u, UNIT_AFTER, SPECIAL_VCONSOLE_SETUP_SERVICE, - /* add_reference= */ true, UNIT_DEPENDENCY_DEFAULT); - return 0; -} - void exec_status_start(ExecStatus *s, pid_t pid) { assert(s); diff --git a/src/core/execute.h b/src/core/execute.h index 09f007bb4e9..f784c1a5652 100644 --- a/src/core/execute.h +++ b/src/core/execute.h @@ -501,7 +501,6 @@ void exec_context_revert_tty(ExecContext *c); int exec_context_get_clean_directories(ExecContext *c, char **prefix, ExecCleanMask mask, char ***ret); int exec_context_get_clean_mask(ExecContext *c, ExecCleanMask *ret); -int exec_context_add_default_dependencies(Unit *u, const ExecContext *c); void exec_status_start(ExecStatus *s, pid_t pid); void exec_status_exit(ExecStatus *s, const ExecContext *context, pid_t pid, int code, int status); diff --git a/src/core/mount.c b/src/core/mount.c index 765c9899ef6..7bab18b4919 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -608,7 +608,7 @@ static int mount_add_default_dependencies(Mount *m) { if (r < 0) return r; - return exec_context_add_default_dependencies(UNIT(m), &m->exec_context); + return 0; } static int mount_verify(Mount *m) { diff --git a/src/core/service.c b/src/core/service.c index c6178cf2cd7..0574a909e16 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -747,12 +747,7 @@ static int service_add_default_dependencies(Service *s) { return r; /* Third, add us in for normal shutdown. */ - 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; - - /* Fourth, add generic dependencies */ - return exec_context_add_default_dependencies(UNIT(s), &s->exec_context); + 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/socket.c b/src/core/socket.c index e4c1f5a793f..d72194f20b5 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -283,11 +283,7 @@ static int socket_add_default_dependencies(Socket *s) { return r; } - 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 exec_context_add_default_dependencies(UNIT(s), &s->exec_context); + 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/swap.c b/src/core/swap.c index 73cf320bfd2..fff75ff8040 100644 --- a/src/core/swap.c +++ b/src/core/swap.c @@ -270,11 +270,7 @@ static int swap_add_default_dependencies(Swap *s) { if (r < 0) return r; - r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, true, UNIT_DEPENDENCY_DEFAULT); - if (r < 0) - return r; - - return exec_context_add_default_dependencies(UNIT(s), &s->exec_context); + return unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, true, UNIT_DEPENDENCY_DEFAULT); } static int swap_verify(Swap *s) {