From f6201acf2adce4cf950fa9478b4ee60779ba4450 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Sun, 30 Apr 2023 23:25:23 -0700 Subject: [PATCH] server: add runtime kill --- server/package-lock.json | 4 ++-- server/src/runtime.ts | 10 +++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/server/package-lock.json b/server/package-lock.json index 8168e1e2b..3b09c2c74 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/server", - "version": "0.7.97", + "version": "0.8.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@scrypted/server", - "version": "0.7.97", + "version": "0.8.0", "license": "ISC", "dependencies": { "@mapbox/node-pre-gyp": "^1.0.10", diff --git a/server/src/runtime.ts b/server/src/runtime.ts index 6a1f97447..a254c6bc0 100644 --- a/server/src/runtime.ts +++ b/server/src/runtime.ts @@ -827,18 +827,22 @@ export class ScryptedRuntime extends PluginHttp { return ret; } - killall() { + kill() { for (const host of Object.values(this.plugins)) { host?.kill(); } + } + + exit() { + this.kill(); process.exit(); } async start() { // catch ctrl-c - process.on('SIGINT', () => this.killall()); + process.on('SIGINT', () => this.exit()); // catch kill - process.on('SIGTERM', () => this.killall()); + process.on('SIGTERM', () => this.exit()); for await (const pluginDevice of this.datastore.getAll(PluginDevice)) { // this may happen due to race condition around deletion/update. investigate.