From 6b509491412fbc15b00f084c1c2f686c1e1dbf07 Mon Sep 17 00:00:00 2001 From: Kroese Date: Tue, 11 Apr 2023 05:50:37 +0200 Subject: [PATCH 1/6] Fix trap signal --- run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run.sh b/run.sh index 58ab79d..81bcb09 100755 --- a/run.sh +++ b/run.sh @@ -39,7 +39,7 @@ ARGS="-m ${RAM_SIZE} -smp ${CPU_CORES} -machine type=q35${KVM_ACC_OPTS} ${EXTRA_ set -m ( - for _SIGNAL in {1..64}; do trap 'echo Caught trap ${_SIGNAL} for the QEMU process' "${_SIGNAL}"; done + for _SIGNAL in {1..64}; do trap "echo Caught trap ${_SIGNAL} for the QEMU process" "${_SIGNAL}"; done qemu-system-x86_64 ${ARGS} & echo $! > ${_QEMU_PID} ) set +m From 3797b4887348542ef92a6b2603286406b856e0c6 Mon Sep 17 00:00:00 2001 From: Kroese Date: Tue, 11 Apr 2023 05:55:21 +0200 Subject: [PATCH 2/6] Fix trap handler --- power.sh | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/power.sh b/power.sh index e6f8fdc..16edc7c 100644 --- a/power.sh +++ b/power.sh @@ -12,7 +12,7 @@ _QEMU_SHUTDOWN_COUNTER=/run/qemu.counter _trap(){ func="$1" ; shift for sig ; do - trap '$func $sig' "$sig" + trap "$func $sig" "$sig" done } @@ -22,16 +22,12 @@ _graceful_shutdown(){ local QEMU_POWERDOWN_TIMEOUT="${QEMU_POWERDOWN_TIMEOUT:-120}" set +e - echo "Trapped $1 signal" + echo "Received $1 signal.." echo 0 > "${_QEMU_SHUTDOWN_COUNTER}" FILE="${IMG}/agent.ver" - if [ ! -f "$FILE" ]; then - AGENT_VERSION="1" - echo "$AGENT_VERSION" > "$IMG"/agent.ver - else - AGENT_VERSION=$(cat "${FILE}") - fi + [ ! -f "$FILE" ] && echo "1" > "$FILE" + AGENT_VERSION=$(cat "${FILE}") # Don't send the powerdown signal because Synology ignores it # echo 'system_powerdown' | nc -q 1 -w 1 localhost "${QEMU_MONPORT}">/dev/null From c10cc2e11f53bbe8a0cd725ca01b6affc0e8f80f Mon Sep 17 00:00:00 2001 From: Kroese Date: Tue, 11 Apr 2023 05:58:31 +0200 Subject: [PATCH 3/6] MAC --- network.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/network.sh b/network.sh index 599f1f1..db4ca54 100644 --- a/network.sh +++ b/network.sh @@ -5,10 +5,10 @@ set -eu : ${VM_NET_MAC:=''} : ${VM_NET_IP:='20.20.20.21'} +: ${DNS_SERVERS:=''} : ${DNSMASQ:='/usr/sbin/dnsmasq'} : ${DNSMASQ_OPTS:=''} : ${DNSMASQ_CONF_DIR:='/etc/dnsmasq.d'} -: ${DNS_SERVERS:=''} # ###################################### # Functions @@ -66,9 +66,7 @@ fi #If environment variabele not set fall back to file if [ -z "$VM_NET_MAC" ]; then FILE="${IMG}/guest.mac" - if [ ! -f "$FILE" ]; then - echo "00:11:32:2C:A7:85" > "$FILE" - fi + [ ! -f "$FILE" ] && echo "00:11:32:2C:A7:85" > "$FILE" VM_NET_MAC=$(cat "${FILE}") fi From 808311ca177e9347813c0589163aa45a5cc8059b Mon Sep 17 00:00:00 2001 From: Kroese Date: Tue, 11 Apr 2023 06:00:36 +0200 Subject: [PATCH 4/6] Agent version --- install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index cf5ed62..6994d21 100644 --- a/install.sh +++ b/install.sh @@ -122,6 +122,9 @@ mkdir -p $LOC cp /agent/service.sh $LOC/agent.sh chmod +x $LOC/agent.sh +# Store agent version +echo "2" > "$IMG"/agent.ver + if [ "$PRIVILEGED" = false ]; then echo "Install: Installing system partition..." @@ -137,9 +140,6 @@ fi rm -rf $MOUNT -# Store agent version -echo "2" > "$IMG"/agent.ver - mv -f "$BOOT" "$IMG"/"$BASE".boot.img mv -f "$SYSTEM" "$IMG"/"$BASE".system.img From 60592f0fe491a312212d3966e64bf5deb40956b5 Mon Sep 17 00:00:00 2001 From: Kroese Date: Tue, 11 Apr 2023 06:06:40 +0200 Subject: [PATCH 5/6] Update Dockerfile --- Dockerfile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index a80a483..722e3cb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,12 +15,10 @@ RUN apt-get update && apt-get -y upgrade && \ wget \ unzip \ procps \ - ethtool \ dnsmasq \ iptables \ iproute2 \ xz-utils \ - qemu-utils \ btrfs-progs \ bridge-utils \ netcat-openbsd \ @@ -35,6 +33,7 @@ COPY serial.sh /run/ COPY server.sh /run/ COPY install.sh /run/ COPY network.sh /run/ + COPY agent/agent.sh /agent/ COPY agent/service.sh /agent/ @@ -61,9 +60,9 @@ EXPOSE 445 EXPOSE 5000 EXPOSE 5001 -ENV RAM_SIZE 512M -ENV DISK_SIZE 16G ENV CPU_CORES 1 +ENV DISK_SIZE 16G +ENV RAM_SIZE 512M #ENV URL https://global.synologydownload.com/download/DSM/beta/7.2/64216/DSM_VirtualDSM_64216.pat #ENV URL https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_VirtualDSM_42218.pat From c8375f973517a00388d9f27f427d58c43ae86bc9 Mon Sep 17 00:00:00 2001 From: Kroese Date: Tue, 11 Apr 2023 06:11:33 +0200 Subject: [PATCH 6/6] Shellcheck --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ded0aa2..8b9a1c5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,5 +22,5 @@ jobs: - name: Run ShellCheck uses: ludeeus/action-shellcheck@master env: - SHELLCHECK_OPTS: -e SC2001 -e SC2002 -e SC2116 -e SC2034 -e SC1091 -e SC2143 -e SC2223 -e SC2086 -e SC2145 -e SC2015 -e SC2268 -e SC2207 + SHELLCHECK_OPTS: -e SC2001 -e SC2002 -e SC2116 -e SC2034 -e SC1091 -e SC2143 -e SC2223 -e SC2086 -e SC2145 -e SC2015 -e SC2268 -e SC2207 -e SC2064