How to kill an executable ran by system command and close the cmd window

I'm running an executable in the following order, so i could close it after a certain time is passed:
system([exe_name ' &']);% Open executable
if time>time_th
system(['TASKKILL -f -im "' exe_name '"']); % Close executable
When i use the kill command, the executable stops running, but the cmd window stays open for unknowen reason.
I don't want to "kill" cmd windows because we may have another necessery cmd window open in the background.
How can I kill the executable while making sure that I'm closing also the cmd window?

 Respuesta aceptada

You could try to start the executable through Java instead of opening a CMD window:
runtime = java.lang.Runtime.getRuntime();
process = runtime.exec('exename'); % non-blocking
...
process.destroy();
% Might be useful:
% rc = process.waitFor(); % block Matlab until external program ends
% rc = process.exitValue(); % fetch an ended process' return code

2 comentarios

Works great! thank you
How do we read the STDOUT in this case though?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Communications Toolbox en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 25 de Abr. de 2021

Comentada:

el 2 de Feb. de 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by