From 070ff2ade6ed842b581d641bf13133ba43c8ea3c Mon Sep 17 00:00:00 2001 From: Micah Hausler Date: Thu, 11 Jan 2024 10:05:01 -0800 Subject: [PATCH] fix(nspawn-container): Retry 0-setup-system.sh on failure (#586) Other system processes can acquire a dpkg frontend lock on startup that will cause the downloaded package install to fail. The setup script continues without exiting and machinectl is not found. This change forces the script to exit early on error, and adds 5 retries to the systemd unit at 30s intervals. Signed-off-by: Micah Hausler --- nspawn-container/scripts/0-setup-system.sh | 4 +++- nspawn-container/scripts/setup-system.service | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/nspawn-container/scripts/0-setup-system.sh b/nspawn-container/scripts/0-setup-system.sh index 18cda64..60646d2 100644 --- a/nspawn-container/scripts/0-setup-system.sh +++ b/nspawn-container/scripts/0-setup-system.sh @@ -1,7 +1,9 @@ #!/bin/bash -# This script installs systemd-container if it's not installed. +# This script installs systemd-container if it's not installed. # Also links any containers from /data/custom/machines to /var/lib/machines. +set -e + if ! dpkg -l systemd-container | grep ii >/dev/null; then if ! apt -y install systemd-container debootstrap; then yes | dpkg -i /data/custom/dpkg/*.deb diff --git a/nspawn-container/scripts/setup-system.service b/nspawn-container/scripts/setup-system.service index 91fb0ef..bb736ea 100644 --- a/nspawn-container/scripts/setup-system.service +++ b/nspawn-container/scripts/setup-system.service @@ -2,11 +2,13 @@ Description=Setup custom container service Wants=network-online.target After=network-online.target +StartLimitBurst=5 [Service] Type=oneshot ExecStart=/data/on_boot.d/0-setup-system.sh RemainAfterExit=yes +RestartSec=30 [Install] WantedBy=multi-user.target