mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Close Lens Proxy on quit of backend (#7453)
- Extract global shared state of shell sessions Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
1 parent
2884dea195
commit
908a3cabe1
8 files changed
+99
-31
No files matched your search
+21
-3
@@ -4,13 +4,31 @@
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { beforeQuitOfBackEndInjectionToken } from "../runnable-tokens/phases";
|
||||
import { ShellSession } from "../../shell-session/shell-session";
|
||||
import shellSessionProcessesInjectable from "../../shell-session/processes.injectable";
|
||||
import prefixedLoggerInjectable from "../../../common/logger/prefixed-logger.injectable";
|
||||
|
||||
const cleanUpShellSessionsInjectable = getInjectable({
|
||||
id: "clean-up-shell-sessions",
|
||||
|
||||
instantiate: () => ({
|
||||
run: () => void ShellSession.cleanup(),
|
||||
instantiate: (di) => ({
|
||||
run: () => {
|
||||
const shellSessionProcesses = di.inject(shellSessionProcessesInjectable);
|
||||
const logger = di.inject(prefixedLoggerInjectable, "SHELL-SESSIONS");
|
||||
|
||||
logger.info("Killing all remaining shell sessions");
|
||||
|
||||
for (const { pid } of shellSessionProcesses.values()) {
|
||||
try {
|
||||
process.kill(pid);
|
||||
} catch {
|
||||
// ignore error
|
||||
}
|
||||
}
|
||||
|
||||
shellSessionProcesses.clear();
|
||||
|
||||
return undefined;
|
||||
},
|
||||
}),
|
||||
|
||||
injectionToken: beforeQuitOfBackEndInjectionToken,
|
||||
|
||||
Reference in new issue
Block a user