Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

380
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!