summaryrefslogtreecommitdiff
path: root/mkosi.extra
diff options
context:
space:
mode:
Diffstat (limited to 'mkosi.extra')
-rw-r--r--mkosi.extra/etc/issue2
-rw-r--r--mkosi.extra/etc/systemd/system/mkosi-check-and-shutdown.service14
-rwxr-xr-xmkosi.extra/etc/systemd/system/mkosi-check-and-shutdown.sh15
-rw-r--r--mkosi.extra/root/.gdbinit2
4 files changed, 33 insertions, 0 deletions
diff --git a/mkosi.extra/etc/issue b/mkosi.extra/etc/issue
new file mode 100644
index 0000000000..6aa6fc0ec0
--- /dev/null
+++ b/mkosi.extra/etc/issue
@@ -0,0 +1,2 @@
+\S (built from systemd tree)
+Kernel \r on an \m (\l)
diff --git a/mkosi.extra/etc/systemd/system/mkosi-check-and-shutdown.service b/mkosi.extra/etc/systemd/system/mkosi-check-and-shutdown.service
new file mode 100644
index 0000000000..6539325108
--- /dev/null
+++ b/mkosi.extra/etc/systemd/system/mkosi-check-and-shutdown.service
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Unit]
+Description=Check if any service failed and then shutdown the machine
+After=multi-user.target network-online.target
+Requires=multi-user.target
+Wants=systemd-resolved.service systemd-networkd.service network-online.target
+OnFailure=poweroff.target
+OnFailureJobMode=replace-irreversibly
+
+[Service]
+Type=oneshot
+ExecStartPre=-rm -f /failed-services
+ExecStart=/usr/lib/systemd/mkosi-check-and-shutdown.sh
+ExecStartPost=systemctl poweroff --no-block
diff --git a/mkosi.extra/etc/systemd/system/mkosi-check-and-shutdown.sh b/mkosi.extra/etc/systemd/system/mkosi-check-and-shutdown.sh
new file mode 100755
index 0000000000..b86d2d3e69
--- /dev/null
+++ b/mkosi.extra/etc/systemd/system/mkosi-check-and-shutdown.sh
@@ -0,0 +1,15 @@
+#!/bin/bash -eux
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+systemctl --failed --no-legend | tee /failed-services
+
+# Check that secure boot keys were properly enrolled.
+if [[ -d /sys/firmware/efi/efivars/ ]]; then
+ cmp /sys/firmware/efi/efivars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c <(printf '\6\0\0\0\1')
+ cmp /sys/firmware/efi/efivars/SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c <(printf '\6\0\0\0\0')
+fi
+
+# Exit with non-zero EC if the /failed-services file is not empty (we have -e set)
+[[ ! -s /failed-services ]]
+
+: >/testok
diff --git a/mkosi.extra/root/.gdbinit b/mkosi.extra/root/.gdbinit
new file mode 100644
index 0000000000..522e1fecb6
--- /dev/null
+++ b/mkosi.extra/root/.gdbinit
@@ -0,0 +1,2 @@
+set debuginfod enabled off
+set build-id-verbose 0