Bash

PID File Management

admin by @admin ADMIN
1h ago
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
Write a daemon's PID to a file at start, check on subsequent runs, clean up on exit. Avoids two copies of the same daemon when the script is invoked twice.
Bash
Raw
#!/usr/bin/env bash
set -euo pipefail
PIDFILE="/var/run/myapp.pid"

# Already running?
if [[ -f "$PIDFILE" ]] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
    echo "Already running as PID $(cat "$PIDFILE")" >&2
    exit 1
fi

# Write our PID, clean up on exit
echo $$ > "$PIDFILE"
trap 'rm -f "$PIDFILE"' EXIT INT TERM

# ─── daemon body ─────────────────────────────────────
while true; do
    echo "[$(date)] heartbeat"
    sleep 60
done
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.