about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xdscip23
1 files changed, 11 insertions, 12 deletions
diff --git a/dscip b/dscip
index 99915ee..8532b9f 100755
--- a/dscip
+++ b/dscip
@@ -29,14 +29,14 @@ if [ "$DSCIP_AUTO_UPDATE" = "true" ]; then
 	DSCIP_NEW_CKSUM="$(cksum "$0")"
 	# Rerun dscip if update was found.
 	if [ ! "$DSCIP_CKSUM" = "$DSCIP_NEW_CKSUM" ]; then
-		echo "Update found. Rerunning DSCIP..."
+		echo "[dscip] Update found. Rerunning DSCIP..."
 		"$SHELL" "$0" "$@"
 		exit 0
 	else
-		echo "No updates found. Continuing..."
+		echo "[dscip] No updates found. Continuing..."
 	fi
 else
-	echo "Auto updates turned off. Continuing..."
+	echo "[dscip] Auto updates turned off. Continuing..."
 fi
 
 ################################################################################
@@ -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 "[dscip] Script still running. Exiting..."
+			exit 0
+		fi
+	done
+	echo "[dscip] 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