From 01d24ef22778337ed04cf9d6444b1be57b6a1e1a Mon Sep 17 00:00:00 2001 From: Stefan Becker Date: Tue, 9 May 2023 16:24:49 +0300 Subject: [PATCH] Skip binfmt_misc register when unnecessary (#693) This improves commit 6dc45a80e764eacd6e311c32164b623bbe7f8e08 Check if interpreter is already registered before running the register step. This avoids unnecessary "sudo" execution which may require user interaction for the password. Improves on #685 --- build-docker.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/build-docker.sh b/build-docker.sh index 7d0b5ad..4fdd89c 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -132,13 +132,15 @@ if [[ "${binfmt_misc_required}" == "1" ]]; then fi echo "binfmt_misc mounted" fi - # Register qemu-arm for binfmt_misc (binfmt_misc won't care duplicate entries unless they have common names) - reg="echo ':qemu-arm-rpi:M::"\ + if ! grep -q "^interpreter ${qemu_arm}" /proc/sys/fs/binfmt_misc/qemu-arm* ; then + # Register qemu-arm for binfmt_misc + reg="echo ':qemu-arm-rpi:M::"\ "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:"\ "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:"\ -"$qemu_arm:F' > /proc/sys/fs/binfmt_misc/register" - echo "Registering qemu-arm for binfmt_misc..." - sudo bash -c "$reg" 2>/dev/null || true +"${qemu_arm}:F' > /proc/sys/fs/binfmt_misc/register" + echo "Registering qemu-arm for binfmt_misc..." + sudo bash -c "${reg}" 2>/dev/null || true + fi fi trap 'echo "got CTRL+C... please wait 5s" && ${DOCKER} stop -t 5 ${DOCKER_CMDLINE_NAME}' SIGINT SIGTERM