An agent's commands run through a wrapper shell whose command line contains the pattern being searched for, so `pgrep -f 'pilot\.py'` matches the shell running that very pgrep, and `pkill -f 'fly_session|pilot\.py'` kills it mid-script. In one session this killed two running scripts and twice made an "is it already running?" guard answer yes because it had found itself. The [p]ilot bracket trick does not help, because the real invocation appears on the wrapper's command line too. Recorded with what works instead: pgrep -x on the exact name, or ps -eo args filtered against the snapshot-bash path that every wrapper carries, then kill by explicit pid. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE