#!/bin/bash # Bail if other agents are alive in the state dir. # $1 = this agent's pid file name (e.g. pid-12345) # cwd = state dir # # Exit 0 = continue, exit 1 = bail shopt -s nullglob my_pid_file="$1" for f in pid-*; do [[ $f == $my_pid_file ]] && continue pid="${f#pid-}" if kill -0 "$pid" 2>/dev/null; then exit 1 # competing agent is alive else rm -f "$f" # stale pid file, clean up fi done exit 0