console: fix login prompt by avoiding oneshot scheduler deadlock

29_activate_console: changed from oneshot back to oneshot_async.
The oneshot type calls child.wait() which blocks the entire init
scheduler. If inputd doesn't drain its control channel promptly,
ControlHandle::write() hangs forever, freezing boot.

30_console: added 'sleep 0.2' before 'exec getty 2' to give
inputd time to process the VT activation before getty opens
/scheme/fbcon/2. Eliminates the race condition without
blocking the init scheduler.
This commit is contained in:
2026-06-02 10:21:05 +03:00
parent 76610fc8d0
commit bccc2f7dd1
2 changed files with 6 additions and 6 deletions
+3 -3
View File
@@ -477,7 +477,7 @@ requires_weak = [
[service]
cmd = "inputd"
args = ["-A", "2"]
type = "oneshot"
type = "oneshot_async"
"""
[[files]]
@@ -490,8 +490,8 @@ requires_weak = [
]
[service]
cmd = "getty"
args = ["2"]
cmd = "sh"
args = ["-c", "sleep 0.2; exec getty 2"]
type = "oneshot_async"
"""
+3 -3
View File
@@ -504,7 +504,7 @@ requires_weak = ["00_base.target"]
[service]
cmd = "inputd"
args = ["-A", "2"]
type = "oneshot"
type = "oneshot_async"
"""
[[files]]
@@ -516,8 +516,8 @@ default_dependencies = false
requires_weak = ["29_activate_console.service"]
[service]
cmd = "getty"
args = ["2"]
cmd = "sh"
args = ["-c", "sleep 0.2; exec getty 2"]
type = "oneshot_async"
"""