about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xdscip17
1 files changed, 8 insertions, 9 deletions
diff --git a/dscip b/dscip
index 99915ee..520a169 100755
--- a/dscip
+++ b/dscip
@@ -55,19 +55,18 @@ set -u
 if [ -f "$WORKING_DIRECTORY/LOCK" ]; then
 	LOCKED_PID=$(cat "$WORKING_DIRECTORY/LOCK")
 	# shellcheck disable=SC2009
-	if ps -aux | grep -w "[^]]$LOCKED_PID" > /dev/null; then
-		echo "Script still running. Exiting..."
-		exit 0
-	else
-		echo "Script not running, resetting lock..."
-		rm "$WORKING_DIRECTORY/LOCK"
-	fi
+	for i in $(pgrep -f "$0"); do
+		if [ "$i" = "$LOCKED_PID" ]; then
+			echo "Script still running. Exiting..."
+			exit 0
+		fi
+	done
+	echo "Script not running. Removing old lock."
+	rm -f "$WORKING_DIRECTORY/LOCK"
 fi
 
 echo "$$" > "$WORKING_DIRECTORY/LOCK"
 
-
-
 build () {
 	# Remove old output
 	rm -f "$WORKING_DIRECTORY"/output.txt