Estoy escribiendo una aplicación Electron. Tengo esta función muy simple que en este momento solo devuelve una matriz vacía:
async GetStuff() { var result:string[] = []; var bExists = false; var exec = require('child_process').exec; exec("tasklist", (err:any, stdout:any, stderr:any) => { err = err; stderr = stderr; bExists = stdout.toLowerCase().indexOf("unixsrv.exe") > -1; }); return result }Tal como está, informa correctamente si un proceso llamado "unixsrv.exe" se está ejecutando o no.
La cuestión es que la función tal como está primero llegará a la línea "resultado devuelto" y luego llegará a la línea "bExists =".
¿Cómo puedo modificar lo anterior para que no regrese hasta que tenga la respuesta de si existe o no el proceso?
De manera más genérica: ¿Cómo puedo probar sincrónicamente si un proceso se está ejecutando o no?
Gracias por cualquier ayuda.
He encontrado la respuesta que funciona para mí aquí:
node.js ¿cómo comprobar que un proceso se está ejecutando por el nombre del proceso?
Es la respuesta publicada allí por Christiaan Maks.