diff --git a/terminus-terminal/src/components/terminalTab.component.ts b/terminus-terminal/src/components/terminalTab.component.ts index 65101099..311b7848 100644 --- a/terminus-terminal/src/components/terminalTab.component.ts +++ b/terminus-terminal/src/components/terminalTab.component.ts @@ -322,7 +322,7 @@ export class TerminalTabComponent extends BaseTabComponent { async destroy () { super.destroy() - if (this.session) { + if (this.session && this.session.open) { await this.session.destroy() } } diff --git a/terminus-terminal/src/persistenceProviders.ts b/terminus-terminal/src/persistenceProviders.ts index a20a975f..55254ae4 100644 --- a/terminus-terminal/src/persistenceProviders.ts +++ b/terminus-terminal/src/persistenceProviders.ts @@ -110,6 +110,10 @@ export class ScreenPersistenceProvider extends SessionPersistenceProvider { } async terminateSession (recoveryId: string): Promise { - await exec(`screen -S ${recoveryId} -X quit`) + try { + await exec(`screen -S ${recoveryId} -X quit`) + } catch (_) { + // screen has already quit + } } }