Time limit for the Exclamation Point — !

5 views (last 30 days)
I was wondering if anyone knew if there was an established time limit for using the exclamation point to run an external command. I notice an issue that matlab seems to hang if I run an external script that takes too much time. I have searched for a max time so I can put a time limit on my script but I cannot not find a specific listed time.

Accepted Answer

Friedrich
Friedrich on 10 Aug 2012
Hi,
which OS are you on? On windows you can use activex and the WScript.Shell component to set a timeout and cancel the started process.
% Get interface to Windows Shell objects which allow you to run
% external applications
sh = actxserver('WScript.Shell');
% As an example run cmd.exe
h = sh.Exec('cmd.exe');
% Set timeout on 5 seconds. If timeout is reached terminate the
% application
t = timer('StartDelay',5,'TimerFcn',@(x,y)h.Terminate);
start(t);
% Wait for the application to finish normally or to Timeout
while (strcmp(h.Status,'WshRunning'))
drawnow % Allow timer to execute
end
% Clean-up timer
stop(t);delete(t)
% Get stdout if any
r = h.StdOut.ReadAll

More Answers (1)

Walter Roberson
Walter Roberson on 10 Aug 2012
There is no mechanism for imposing time limits in most parts of MATLAB.
(I think I saw discussion in which a way was shown to impose time limits on the Parallel Computing Toolbox "batch" facility. There aren't many other time limits that can be imposed with the cooperation of the code that is executing -- and in your situation you do not have the cooperation of that code.)
Possibly your operating system provides a mechanism for imposing time limits. For example in Unix derived systems, it can be doing using "limit" or "ulimit" commands to set resource limits.

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!