From 4f7f280b30ff8cdad8abab1def05540703bcfaa6 Mon Sep 17 00:00:00 2001 From: jlenon7 Date: Tue, 3 Feb 2026 10:43:54 -0300 Subject: [PATCH] fix(shutdown): stop using process.kill in SIGTERM --- package-lock.json | 4 ++-- package.json | 2 +- src/helpers/LoadHelper.ts | 12 ++++++++++-- src/ignite/Ignite.ts | 10 ++++------ 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index ee75f4f..5447ec0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@athenna/core", - "version": "5.35.0", + "version": "5.36.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@athenna/core", - "version": "5.35.0", + "version": "5.36.0", "license": "MIT", "dependencies": { "pretty-repl": "^3.1.2", diff --git a/package.json b/package.json index 18c21ea..7323d11 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@athenna/core", - "version": "5.35.0", + "version": "5.36.0", "description": "One foundation for multiple applications.", "license": "MIT", "author": "João Lenon ", diff --git a/src/helpers/LoadHelper.ts b/src/helpers/LoadHelper.ts index 61a9adb..56be153 100644 --- a/src/helpers/LoadHelper.ts +++ b/src/helpers/LoadHelper.ts @@ -68,13 +68,21 @@ export class LoadHelper { await this.providers.athenna.concurrently(Provider => { debug('running shutdown() method of provider %s.', Provider.name) - if (Config.is('rc.shutdownLogs', true)) { + const log = () => { Log.channelOrVanilla('application').success( `Provider ({yellow} ${Provider.name}) successfully shutdown` ) } - return new Provider().shutdown() as Promise + const shutdown = new Provider().shutdown() as Promise + + if (!shutdown?.then) { + log() + + return + } + + return shutdown.then(() => log()) }) } diff --git a/src/ignite/Ignite.ts b/src/ignite/Ignite.ts index 860ed59..f175e39 100644 --- a/src/ignite/Ignite.ts +++ b/src/ignite/Ignite.ts @@ -20,6 +20,7 @@ import type { } from '#src/types' import { Ioc } from '@athenna/ioc' +import { debug } from '#src/debug' import { Cron } from '#src/applications/Cron' import { Http } from '#src/applications/Http' import type { ServerImpl } from '@athenna/http' @@ -35,7 +36,6 @@ import { Repl as ReplApp } from '#src/applications/Repl' import { parse as semverParse, satisfies as semverSatisfies } from 'semver' import { Is, Path, File, Module, Options, Macroable } from '@athenna/common' import { NotSatisfiedNodeVersion } from '#src/exceptions/NotSatisfiedNodeVersion' -import { debug } from '#src/debug/index' export class Ignite extends Macroable { /** @@ -380,15 +380,13 @@ export class Ignite extends Macroable { if (!signals.SIGINT) { signals.SIGINT = () => { - process.exit() + process.exit(0) } } if (!signals.SIGTERM) { - signals.SIGTERM = signal => { - LoadHelper.shutdownProviders().then(() => - process.kill(process.pid, signal) - ) + signals.SIGTERM = () => { + LoadHelper.shutdownProviders().then(() => process.exit(0)) } }