From d40779e97aba01f88b0254ff9207a8d78438438b Mon Sep 17 00:00:00 2001 From: masterdraco Date: Sun, 23 Feb 2025 23:18:40 +0100 Subject: [PATCH] minor fixes debug info to dry-run --- usr/local/bin/torrent-mover | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/usr/local/bin/torrent-mover b/usr/local/bin/torrent-mover index 968f6e3..503f426 100755 --- a/usr/local/bin/torrent-mover +++ b/usr/local/bin/torrent-mover @@ -1,5 +1,32 @@ #!/bin/bash -# Torrent Mover v5.1 - Numeric Handling Fix +# Torrent Mover v5.3 - Singleton Implementation + +# Singleton pattern +LOCK_FILE="/var/lock/torrent-mover.lock" +MAX_AGE=300 # 5 minutes in seconds + +# Check for existing lock +if [ -f "${LOCK_FILE}" ]; then + PID=$(cat "${LOCK_FILE}") + + # Check if process exists + if ps -p "${PID}" > /dev/null 2>&1; then + echo "Already running (PID: ${PID}), exiting." + exit 1 + else + # Check lock file age + if [ $(($(date +%s) - $(date -r "${LOCK_FILE}" +%s))) -lt ${MAX_AGE} ]; then + echo "Recent crash detected, waiting..." + exit 1 + fi + echo "Removing stale lock (PID: ${PID})" + rm -f "${LOCK_FILE}" + fi +fi + +# Create new lock +echo $$ > "${LOCK_FILE}" +trap 'rm -f "${LOCK_FILE}"' EXIT TERM INT set -o errexit set -o nounset