From 757b47cf06d855a26580d1e778271a3d3683d1c2 Mon Sep 17 00:00:00 2001 From: j Date: Thu, 15 Jan 2026 11:10:06 +1300 Subject: [PATCH] Update scrutiny/start.sh --- scrutiny/start.sh | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/scrutiny/start.sh b/scrutiny/start.sh index 411c30f..088c896 100755 --- a/scrutiny/start.sh +++ b/scrutiny/start.sh @@ -7,14 +7,14 @@ _check_required_env_vars "CONTAINER_NAME" "IMAGE_REGISTRY" "IMAGE_REPO" "IMAGE_T # Set defaults WEB_PORT="${WEB_PORT:-8080}" INFLUXDB_PORT="${INFLUXDB_PORT:-8086}" -DEVICES="${DEVICES:-/dev/sda}" +DEVICES="${DEVICES:-sda}" PRIVILEGED_MODE="${PRIVILEGED_MODE:-false}" COLLECTOR_CRON_SCHEDULE="${COLLECTOR_CRON_SCHEDULE:-0 0 * * *}" -# Build device arguments -DEVICE_ARGS="" +# Build device arguments array +DEVICE_ARGS=() if [ "$PRIVILEGED_MODE" = "true" ]; then - DEVICE_ARGS="--privileged" + DEVICE_ARGS+=("--privileged") else for dev in $DEVICES; do # Auto-prepend /dev/ if not already a path @@ -22,35 +22,39 @@ else dev="/dev/$dev" fi if [ -e "$dev" ]; then - DEVICE_ARGS="$DEVICE_ARGS --device=$dev" + DEVICE_ARGS+=("--device=$dev") else echo "Warning: Device $dev does not exist, skipping" fi done - if [ -z "$DEVICE_ARGS" ]; then + if [ ${#DEVICE_ARGS[@]} -eq 0 ]; then _die "No valid devices found. Check DEVICES setting or enable PRIVILEGED_MODE." fi fi -# Build docker run command -DOCKER_RUN_CMD="docker run -d \ +# Remove existing container if stopped +if _is_container_exists "$CONTAINER_NAME"; then + if _is_container_running "$CONTAINER_NAME"; then + echo "Container ${CONTAINER_NAME} is already running" + exit 0 + fi + _remove_container "$CONTAINER_NAME" +fi + +# Run docker directly with proper quoting +docker run -d \ --restart unless-stopped \ - --name ${CONTAINER_NAME} \ - -p ${WEB_PORT}:8080 \ - -p ${INFLUXDB_PORT}:8086 \ - -v ${CONTAINER_NAME}_config:/opt/scrutiny/config \ - -v ${CONTAINER_NAME}_influxdb:/opt/scrutiny/influxdb \ + --name "${CONTAINER_NAME}" \ + -p "${WEB_PORT}:8080" \ + -p "${INFLUXDB_PORT}:8086" \ + -v "${CONTAINER_NAME}_config:/opt/scrutiny/config" \ + -v "${CONTAINER_NAME}_influxdb:/opt/scrutiny/influxdb" \ -v /run/udev:/run/udev:ro \ --cap-add SYS_RAWIO \ --cap-add SYS_ADMIN \ - -e COLLECTOR_CRON_SCHEDULE=\"${COLLECTOR_CRON_SCHEDULE}\" \ - ${DEVICE_ARGS} \ - ${IMAGE_REGISTRY}/${IMAGE_REPO}:${IMAGE_TAG}" - -# Start container -if ! _create_and_start_container "$DOCKER_RUN_CMD" "$CONTAINER_NAME"; then - _die "Failed to start container ${CONTAINER_NAME}" -fi + -e "COLLECTOR_CRON_SCHEDULE=${COLLECTOR_CRON_SCHEDULE}" \ + "${DEVICE_ARGS[@]}" \ + "${IMAGE_REGISTRY}/${IMAGE_REPO}:${IMAGE_TAG}" # Verify running sleep 2