Kill shell process by pid on Windows (#411)

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
This commit is contained in:
Lauri Nevala authored and GitHub committed 2020-06-09 13:16:39 +03:00
1 parent 5af12bdbbd
commit af24da976b
1 file changed
+17 -4
+17 -4
View File
@@ -159,7 +159,7 @@ export class ShellSession extends EventEmitter {
}
protected exit(code = 1000) {
this.websocket.close(code)
if (this.websocket.readyState == this.websocket.OPEN) this.websocket.close(code)
this.emit('exit')
}
@@ -179,12 +179,25 @@ export class ShellSession extends EventEmitter {
protected exitProcessOnWebsocketClose() {
this.websocket.on("close", () => {
if (this.shellProcess) {
this.shellProcess.kill();
}
this.killShellProcess()
})
}
protected killShellProcess(){
if(this.running) {
// On Windows we need to kill the shell process by pid, since Lens won't respond after a while if using `this.shellProcess.kill()`
if (process.platform == "win32") {
try {
process.kill(this.shellProcess.pid)
} catch(e) {
return
}
} else {
this.shellProcess.kill()
}
}
}
protected sendResponse(msg: string) {
this.websocket.send("1" + Buffer.from(msg).toString("base64"))
}