Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

370
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda