From aeb6010f3c6e857b6165542997f457c6f2ea203b Mon Sep 17 00:00:00 2001 From: Hojun-Cho Date: Sat, 15 Aug 2026 00:09:15 +0900 Subject: [PATCH] fix(runtime): restart daemon in background --- README.md | 9 +++++---- run.sh | 12 +++++++++++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 337a650..c349538 100644 --- a/README.md +++ b/README.md @@ -103,10 +103,11 @@ from the build tree: ./strans map ``` -`run.sh` stays in the foreground and replaces itself with the daemon. Stop it -with `Ctrl-C` or let a service supervisor own it. It neither finds nor kills -other `strans` processes. Endpoint collisions and requested frontend startup -failures make the process exit non-zero. +`run.sh` stops every same-user process whose exact name is `strans`, starts one +build-tree daemon in the background, and returns to the shell. It requires +`pkill` from procps. Startup and frontend failures remain visible on the +caller's standard error. A service supervisor should instead run +`./strans map` directly in the foreground. The build does not copy or install the daemon or its data. `./strans DIR` opens `hira.map`, `kata.map`, `telex.map`, `kanji.dict`, `emoji.dict`, and diff --git a/run.sh b/run.sh index 9de7c90..9d59b11 100755 --- a/run.sh +++ b/run.sh @@ -11,4 +11,14 @@ if ! test -x ./strans; then echo "run.sh: ./strans is not executable; run make first" >&2 exit 1 fi -exec ./strans map +if ! command -v pkill >/dev/null 2>&1; then + echo "run.sh: pkill is required" >&2 + exit 1 +fi + +uid=$(id -u) || exit 1 +pkill -TERM -u "$uid" -x strans 2>/dev/null || : +sleep 0.1 +pkill -KILL -u "$uid" -x strans 2>/dev/null || : + +./strans map