From a171aed035e1689361056f83de7d2196d1ace91e Mon Sep 17 00:00:00 2001 From: lifegpc Date: Sun, 21 Jan 2024 16:33:10 +0800 Subject: [PATCH] Update signal handle --- signal_handler.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/signal_handler.ts b/signal_handler.ts index 6743634..67e1de5 100644 --- a/signal_handler.ts +++ b/signal_handler.ts @@ -1,11 +1,22 @@ import { TaskManager } from "./task_manager.ts"; +import { isDocker } from "./utils.ts"; export const ExitTarget = new EventTarget(); export function add_exit_handler(m: TaskManager) { let first_aborted = true; let ignore_signal = false; + const force_kill = () => { + m.abort(); + m.force_abort(); + ExitTarget.dispatchEvent(new Event("close")); + m.close(); + }; const handler = async () => { + if (isDocker()) { + force_kill(); + return; + } if (ignore_signal) return; if (first_aborted) { m.abort(); @@ -24,12 +35,7 @@ export function add_exit_handler(m: TaskManager) { }; Deno.addSignalListener("SIGINT", handler); if (Deno.build.os !== "windows") { - Deno.addSignalListener("SIGTERM", () => { - m.abort(); - m.force_abort(); - ExitTarget.dispatchEvent(new Event("close")); - m.close(); - }); + Deno.addSignalListener("SIGTERM", force_kill); } }