Files
arch-i3/dotfiles/local/bin/restart-daemon
T

21 lines
600 B
Bash
Raw Normal View History

2026-09-14 15:31:20 -05:00
#!/usr/bin/env bash
# Restart a daemon idempotently — safe to call from i3's exec_always.
# usage: restart-daemon <name> [args…]
set -uo pipefail
name="${1:?usage: restart-daemon <name> [args...]}"
shift || true
command -v "$name" >/dev/null 2>&1 || { echo "restart-daemon: $name not installed" >&2; exit 0; }
pkill -x "$name" >/dev/null 2>&1 || true
for _ in {1..20}; do
pgrep -x "$name" >/dev/null || break
sleep 0.1
done
pgrep -x "$name" >/dev/null && pkill -9 -x "$name"
log="${XDG_CACHE_HOME:-$HOME/.cache}/$name.log"
mkdir -p "$(dirname "$log")"
exec "$name" "$@" >>"$log" 2>&1 &