Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

371
Visualizações
Electron-Node.js Salir de la aplicación después de iniciar una aplicación o archivo externo

¿Es posible salir de la aplicación principal después de iniciar un archivo o aplicación externa?

 const child = require('child_process').execFile; const fs = require('fs'); if (fs.existsSync(updateFile)) { child(updateFile, function(err, data) { }); //start the update.exe app.quit(); //quit the app }

Estoy tratando de abrir mi aplicación updater.exe desde el directorio temp para instalar la nueva actualización. No puedo usar el autoUpdater por alguna razón.

El updater.exe se crea usando C#.net y simplemente reemplaza los archivos antiguos con los nuevos después de la descarga, pero no puedo hacerlo mientras la aplicación principal aún se está ejecutando. Estoy pensando en eliminar la aplicación de C# .net a través de Process , pero no me parece tan adecuado.

Usando el código anterior en Electron-Node.js, updater.exe también se cerró después de llamar a app.quit() ya que es solo un elemento secundario de la aplicación principal. ¿Cuál es el método alternativo?

PD: Esto solo es compatible con Windows. Windows 10 y 11 para ser más específicos.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Gracias a @AlexanderLeither , resulta que hay una opción separada disponible en child_process.spawn() .

Esto hace posible que el proceso hijo continúe ejecutándose después de que el padre salga.

 const child = require('child_process').spawn; const subprocess = child(updateFile, { detached: true, //Continue running after the parent exits. stdio: 'ignore' }); subprocess.unref(); //To prevent the parent from waiting for a given subprocess to exit app.quit();

Además, por alguna razón, hay cuatro procesos de electrones cuando traté de buscar en el Administrador de tareas. Tuve que eliminarlo usando Process en mi C# .net para evitar errores de IO al reemplazar archivos.

 while(true) { //don't stop killing untill no more process with the same name. try { Process[] process = Process.GetProcessesByName("TestProject"); //TestProject is the name of my current project and is in the TaskManager if(process.Length < 1) break; //if the process doesn't exist then break this loop. process[0].Kill(); //if the process exist, kill it process[0].WaitForExit(); //wait until the process exits } catch(Exception) { //this will throw an exception if the same process is trying to kill while it is being kill, that's okay. } }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda