Skip to content

Commit 0649640

Browse files
committed
libtmux(fix[logging]): add Server.kill() log and new_session stderr check
why: Server.kill() was a silent fire-and-forget; new_session's kill-session path discarded stderr on failure. what: - Server.kill(): capture proc, log INFO "server killed", handle "no server running" gracefully - Server.new_session(): check kill-session stderr and raise on failure
1 parent a3244e3 commit 0649640

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

src/libtmux/server.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,16 @@ def kill(self) -> None:
372372
>>> svr.is_alive()
373373
False
374374
"""
375-
self.cmd("kill-server")
375+
proc = self.cmd("kill-server")
376+
if proc.stderr:
377+
stderr_text = " ".join(str(line) for line in proc.stderr)
378+
if (
379+
"no server running" in stderr_text
380+
or "error connecting to" in stderr_text
381+
):
382+
return
383+
raise exc.LibTmuxException(proc.stderr)
384+
logger.info("server killed", extra={"tmux_subcommand": "kill-server"})
376385

377386
def kill_session(self, target_session: str | int) -> Server:
378387
"""Kill tmux session.
@@ -524,7 +533,9 @@ def new_session(
524533

525534
if self.has_session(session_name):
526535
if kill_session:
527-
self.cmd("kill-session", target=session_name)
536+
proc = self.cmd("kill-session", target=session_name)
537+
if proc.stderr:
538+
raise exc.LibTmuxException(proc.stderr)
528539
logger.info(
529540
"existing session killed",
530541
extra={

0 commit comments

Comments
 (0)