Add respawn and getty service config across all build targets

Getty services now use respawn = true so init restarts them on
exit. redbear-live-mini expanded with additional boot-late services
and reorganized service ordering. Device services TOML gains new
entries for hardened daemon lifecycle.
This commit is contained in:
2026-04-23 20:28:52 +01:00
parent 0bbd9adfb3
commit d7444606cb
7 changed files with 124 additions and 97 deletions
+2
View File
@@ -83,6 +83,7 @@ requires_weak = [
cmd = "getty" cmd = "getty"
args = ["2"] args = ["2"]
type = "oneshot_async" type = "oneshot_async"
respawn = true
""" """
[[files]] [[files]]
@@ -113,6 +114,7 @@ requires_weak = [
cmd = "getty" cmd = "getty"
args = ["/scheme/debug/no-preserve", "-J"] args = ["/scheme/debug/no-preserve", "-J"]
type = "oneshot_async" type = "oneshot_async"
respawn = true
""" """
[[files]] [[files]]
+10
View File
@@ -7,6 +7,16 @@ redbear-quirks = {}
pciids = {} pciids = {}
fatd = {} fatd = {}
[[files]]
path = "/usr/lib/init.d/12_boot-late.target"
data = """
[unit]
description = "Late boot services target"
requires_weak = [
"00_base.target",
]
"""
[[files]] [[files]]
path = "/lib/firmware" path = "/lib/firmware"
data = "" data = ""
+12 -3
View File
@@ -2,6 +2,16 @@
# #
# This fragment is intended to be included by the active desktop/graphics target. # This fragment is intended to be included by the active desktop/graphics target.
[[files]]
path = "/usr/lib/init.d/05_boot-essential.target"
data = """
[unit]
description = "Boot essential services target"
requires_weak = [
"00_base.target",
]
"""
[users.greeter] [users.greeter]
password = "" password = ""
uid = 101 uid = 101
@@ -75,7 +85,6 @@ path = "/usr/lib/init.d/30_console.service"
data = """ data = """
[unit] [unit]
description = "Console terminals" description = "Console terminals"
boot_essential = true
requires_weak = [ requires_weak = [
"29_activate_console.service", "29_activate_console.service",
] ]
@@ -84,6 +93,7 @@ requires_weak = [
cmd = "getty" cmd = "getty"
args = ["2"] args = ["2"]
type = "oneshot_async" type = "oneshot_async"
respawn = true
""" """
[[files]] [[files]]
@@ -91,7 +101,6 @@ path = "/usr/lib/init.d/29_activate_console.service"
data = """ data = """
[unit] [unit]
description = "Activate fallback console VT" description = "Activate fallback console VT"
boot_essential = true
requires_weak = [ requires_weak = [
"05_boot-essential.target", "05_boot-essential.target",
] ]
@@ -107,7 +116,6 @@ path = "/usr/lib/init.d/31_debug_console.service"
data = """ data = """
[unit] [unit]
description = "Debug console" description = "Debug console"
boot_essential = true
requires_weak = [ requires_weak = [
"29_activate_console.service", "29_activate_console.service",
] ]
@@ -116,4 +124,5 @@ requires_weak = [
cmd = "getty" cmd = "getty"
args = ["/scheme/debug/no-preserve", "-J"] args = ["/scheme/debug/no-preserve", "-J"]
type = "oneshot_async" type = "oneshot_async"
respawn = true
""" """
+3
View File
@@ -64,6 +64,7 @@ redbear-netstat = {}
redbear-traceroute = {} redbear-traceroute = {}
redbear-mtr = {} redbear-mtr = {}
redbear-nmap = {} redbear-nmap = {}
cub = {}
# Wayland protocol # Wayland protocol
libwayland = {} libwayland = {}
@@ -271,6 +272,7 @@ requires_weak = [
cmd = "getty" cmd = "getty"
args = ["2"] args = ["2"]
type = "oneshot_async" type = "oneshot_async"
respawn = true
""" """
[[files]] [[files]]
@@ -301,6 +303,7 @@ requires_weak = [
cmd = "getty" cmd = "getty"
args = ["/scheme/debug/no-preserve", "-J"] args = ["/scheme/debug/no-preserve", "-J"]
type = "oneshot_async" type = "oneshot_async"
respawn = true
""" """
[[files]] [[files]]
+93 -90
View File
@@ -75,6 +75,7 @@ requires_weak = [
cmd = "getty" cmd = "getty"
args = ["2"] args = ["2"]
type = "oneshot_async" type = "oneshot_async"
respawn = true
""" """
[[files]] [[files]]
@@ -90,6 +91,7 @@ requires_weak = [
cmd = "getty" cmd = "getty"
args = ["/scheme/debug/no-preserve", "-J"] args = ["/scheme/debug/no-preserve", "-J"]
type = "oneshot_async" type = "oneshot_async"
respawn = true
""" """
[[files]] [[files]]
@@ -121,96 +123,6 @@ args = ["-f"]
type = "oneshot_async" type = "oneshot_async"
""" """
[[files]]
path = "/etc/init.d/00_i2cd.service"
data = """
[unit]
description = "I2C adapter registry (non-blocking on live-mini)"
requires_weak = [
"00_base.target",
]
[service]
cmd = "i2cd"
type = "oneshot_async"
"""
[[files]]
path = "/etc/init.d/00_i2c-hidd.service"
data = """
[unit]
description = "ACPI I2C HID bring-up daemon (non-blocking on live-mini)"
requires_weak = [
"00_i2cd.service",
"00_i2c-dw-acpi.service",
"00_intel-gpiod.service",
"00_i2c-gpio-expanderd.service",
]
[service]
cmd = "i2c-hidd"
type = "oneshot_async"
"""
[[files]]
path = "/etc/init.d/00_i2c-gpio-expanderd.service"
data = """
[unit]
description = "I2C GPIO expander companion bridge (non-blocking on live-mini)"
requires_weak = [
"00_i2cd.service",
"00_gpiod.service",
]
[service]
cmd = "i2c-gpio-expanderd"
type = "oneshot_async"
"""
[[files]]
path = "/etc/init.d/00_ucsid.service"
data = """
[unit]
description = "USB-C UCSI topology detector (non-blocking on live-mini)"
requires_weak = [
"00_base.target",
"00_i2cd.service",
]
[service]
cmd = "ucsid"
type = "oneshot_async"
"""
[[files]]
path = "/etc/init.d/00_gpiod.service"
data = """
[unit]
description = "GPIO controller registry (non-blocking on live-mini)"
requires_weak = [
"00_base.target",
]
[service]
cmd = "gpiod"
type = "oneshot_async"
"""
[[files]]
path = "/etc/init.d/00_intel-gpiod.service"
data = """
[unit]
description = "Intel ACPI GPIO registrar (non-blocking on live-mini)"
requires_weak = [
"00_gpiod.service",
"00_i2cd.service",
]
[service]
cmd = "intel-gpiod"
type = "oneshot_async"
"""
[[files]] [[files]]
path = "/etc/motd" path = "/etc/motd"
data = """ data = """
@@ -248,6 +160,7 @@ requires_weak = [
cmd = "getty" cmd = "getty"
args = ["/scheme/debug/no-preserve", "-J"] args = ["/scheme/debug/no-preserve", "-J"]
type = "oneshot_async" type = "oneshot_async"
respawn = true
""" """
[[files]] [[files]]
@@ -265,6 +178,96 @@ args = ["-c", "echo RB_SERIAL_PROBE_OK"]
type = "oneshot" type = "oneshot"
""" """
[[files]]
path = "/etc/init.d/00_gpiod.service"
data = """
[unit]
description = "GPIO controller registry (non-blocking on live-mini)"
requires_weak = [
"00_base.target",
]
[service]
cmd = "gpiod"
type = "oneshot_async"
"""
[[files]]
path = "/etc/init.d/00_i2cd.service"
data = """
[unit]
description = "I2C adapter registry (non-blocking on live-mini)"
requires_weak = [
"00_base.target",
]
[service]
cmd = "i2cd"
type = "oneshot_async"
"""
[[files]]
path = "/etc/init.d/00_intel-gpiod.service"
data = """
[unit]
description = "Intel ACPI GPIO registrar (non-blocking on live-mini)"
requires_weak = [
"00_gpiod.service",
"00_i2cd.service",
]
[service]
cmd = "intel-gpiod"
type = "oneshot_async"
"""
[[files]]
path = "/etc/init.d/00_i2c-gpio-expanderd.service"
data = """
[unit]
description = "I2C GPIO expander companion bridge (non-blocking on live-mini)"
requires_weak = [
"00_i2cd.service",
"00_gpiod.service",
]
[service]
cmd = "i2c-gpio-expanderd"
type = "oneshot_async"
"""
[[files]]
path = "/etc/init.d/00_i2c-hidd.service"
data = """
[unit]
description = "ACPI I2C HID bring-up daemon (non-blocking on live-mini)"
requires_weak = [
"00_i2cd.service",
"00_i2c-dw-acpi.service",
"00_intel-gpiod.service",
"00_i2c-gpio-expanderd.service",
]
[service]
cmd = "i2c-hidd"
type = "oneshot_async"
"""
[[files]]
path = "/etc/init.d/00_ucsid.service"
data = """
[unit]
description = "USB-C UCSI topology detector (non-blocking on live-mini)"
requires_weak = [
"00_base.target",
"00_i2cd.service",
]
[service]
cmd = "ucsid"
type = "oneshot_async"
"""
[[files]] [[files]]
path = "/etc/pcid.d/ihdgd.toml" path = "/etc/pcid.d/ihdgd.toml"
data = """ data = """
+2 -4
View File
@@ -58,10 +58,6 @@ nowait getty 2
nowait getty /scheme/debug/no-preserve -J nowait getty /scheme/debug/no-preserve -J
""" """
[[files]]
path = "/usr/lib/init.d/15_fatd.service"
data = ""
[[files]] [[files]]
path = "/usr/lib/init.d/29_activate_console.service" path = "/usr/lib/init.d/29_activate_console.service"
data = """ data = """
@@ -90,6 +86,7 @@ requires_weak = [
cmd = "getty" cmd = "getty"
args = ["2"] args = ["2"]
type = "oneshot_async" type = "oneshot_async"
respawn = true
""" """
[[files]] [[files]]
@@ -105,4 +102,5 @@ requires_weak = [
cmd = "getty" cmd = "getty"
args = ["/scheme/debug/no-preserve", "-J"] args = ["/scheme/debug/no-preserve", "-J"]
type = "oneshot_async" type = "oneshot_async"
respawn = true
""" """
+2
View File
@@ -129,6 +129,7 @@ requires_weak = [
cmd = "getty" cmd = "getty"
args = ["2"] args = ["2"]
type = "oneshot_async" type = "oneshot_async"
respawn = true
""" """
[[files]] [[files]]
@@ -159,6 +160,7 @@ requires_weak = [
cmd = "getty" cmd = "getty"
args = ["/scheme/debug/no-preserve", "-J"] args = ["/scheme/debug/no-preserve", "-J"]
type = "oneshot_async" type = "oneshot_async"
respawn = true
""" """
[[files]] [[files]]