diff --git a/src/ssh/manager.js b/src/ssh/manager.js index 256de6d..5f3c07d 100644 --- a/src/ssh/manager.js +++ b/src/ssh/manager.js @@ -832,7 +832,8 @@ class SSHManager { `onu-reset onu ${onuId}`, 'yes', 'exit', // Sai do modo interface - 'exit' // Sai do modo configuração + 'exit', // Sai do modo configuração + 'exit' // Encerra a sessão SSH ]; stream.on('data', (data) => { @@ -862,15 +863,18 @@ class SSHManager { } else if (step === 5 && dataStr.includes('(config)#')) { // De volta ao config - enviar segundo exit shouldSendCommand = true; + } else if (step === 6 && dataStr.includes('#') && !dataStr.includes('(config')) { + // Voltou ao prompt raiz - enviar exit final para encerrar sessão + shouldSendCommand = true; } - + if (shouldSendCommand) { console.log(`📝 Enviando comando ${step + 1}: ${commands[step]}`); stream.write(commands[step] + '\n'); step++; } - } else if (!isComplete && dataStr.includes('#') && !dataStr.includes('(config')) { - // Voltou ao prompt normal - operação completa + } else if (!isComplete) { + // Todos os comandos enviados - aguardar fechamento do stream isComplete = true; setTimeout(() => { stream.end();