initial commit
This commit is contained in:
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/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 &
|
||||
Reference in New Issue
Block a user