Previous behavior: `pkill -x $1` (no wait) followed by an immediate
background `setsid uwsm-app`. The new instance attached its wayland
surface while the old one's surface was still mapped. Layer-shell
apps got the same visible ghosting that waybar showed on theme switch
before the SIGUSR2 fix (386da51), and non-layer apps got brief double
instances.
Fix:
- Quote $1 (was unquoted, breaks if app name has whitespace - rare
but cost-free to fix while we're here).
- After SIGTERM, poll pgrep for up to ~1.5s in 100ms ticks.
- If anything is still alive after the poll window, SIGKILL it -
prevents a misbehaving process from holding the surface forever.
- Only spawn the new instance after the old one is confirmed gone.
Affects every caller that hits the non-systemd-managed restart path
(menu's update-process actions, voxtype install/remove, font-change
follow-ups, etc.).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>