[2/3] Add systemd service file to launch bricklayer in first install mode.

Message ID 20230224163605.90519-2-stefan.schantl@ipfire.org
State New
Headers
Series [1/3] Substitute @BINDIR@ |

Commit Message

Stefan Schantl Feb. 24, 2023, 4:36 p.m. UTC
  This service file will launch bricklayer in first-install mode
in case the firstinstall flag on the filesystem is set.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
---
 .../bricklayer-first-install.service.in       | 30 +++++++++++++++++++
 1 file changed, 30 insertions(+)
  

Patch

diff --git a/src/systemd/bricklayer-first-install.service.in b/src/systemd/bricklayer-first-install.service.in
index e69de29..2ba2dd5 100644
--- a/src/systemd/bricklayer-first-install.service.in
+++ b/src/systemd/bricklayer-first-install.service.in
@@ -0,0 +1,30 @@ 
+[Unit]
+Description=Launch bricklayer to configure pre-generated images
+After=plymouth-quit-wait.service
+After=systemd-vconsole-setup.service systemd-user-sessions.service
+# getty-pre.target is a pasive target, we need to request it before we can use it
+Wants=getty-pre.target
+# Prevent getty from running on any consoles before we are done
+Before=getty-pre.target
+Conflicts=plymouth-quit-wait.service bricklayer-first-install.service
+ConditionPathExists=/.firstinstall
+
+[Service]
+Type=oneshot
+TimeoutSec=0
+RemainAfterExit=yes
+# Tell systemd to stop logging to the console, to prevent it's messages
+# with interfering with the TUI of bricklayer potentially running there
+ExecStartPre=/bin/kill -SIGRTMIN+21 1
+ExecStartPre=-/bin/plymouth quit
+ExecStart=@BINDIR@/bricklayer --first-install
+# Re-enable systemd console logging once bricklayer is done
+ExecStartPost=/bin/kill -SIGRTMIN+20 1
+TimeoutSec=0
+RemainAfterExit=no
+StandardInput=tty
+StandardOutput=tty
+StandardError=tty
+
+[Install]
+WantedBy=multi-user.target