running a linux process in MATLAB

I need to check memory usage only while running a particular code in MATLAB. I am working on a linux machine
I need to do the below sequence of events in MATLAB
  • matlab commands (4 code initializing);
  • start checking and logging mem usage (Can be done using system command) ;
  • main matlab commands ;
  • stop checking and logging mem usage (Can be done using system command) ;
I tried the following:
Using watch I can keep doing it infinitely. However it requires a manual stop! And I cant predict when it will stop.
I tried creating a shell script with a flag and then tried to update the flag on another terminal. That to didnt work!
flag=0
while [flag == 0]
do
run cmd
done
and in a terminal tried flag=1
Please help! Will there be a mail sent to my mail id? if any one posts a solution?
Regards,
Manants

답변 (1개)

Jason Ross
Jason Ross 2013년 2월 20일

0 개 추천

Instead of a variable "flag", why not touch a file
touch /tmp/memorylogging
then in your script you use the existance of the file
#!/bin/bash
file="/tmp/memorylogging"
while [ -f "$file" ]
do
run cmd
done
When you are done you can delete the file and the memory logging will stop.
rm /tmp/memorylogging

댓글 수: 4

Manas Savkoor
Manas Savkoor 2013년 2월 24일
Hi,Am a newbie to linux I didnt understand your code! I did "man" on touch command it said: touch updates the access and modification times of each file. Didnt understand how that is useful to me!
Also when does the while loop stop? didnt follow -f "$file"
Regards, Manas
Jason Ross
Jason Ross 2013년 2월 25일
편집: Jason Ross 2013년 2월 25일
Touch can do two things -- one is the thing you mentioned, which is to update the access and modification times of a file. The other thing it can do is create an empty file of the name specified if one doesn't exist already, which is pretty useful. So
touch /tmp/memorylogging
will create a file called "memorylogging" in the directory /tmp
So if you did the following in this order
  1. Touch the file
  2. Start the script
The script would run the command until the file was removed, which would make the "while" condition fail, since "-f $file" simply means "does the file exist on disk".
This is a way to implement the control scheme you want, as environment variables aren't communucated between terminal windows.
Manas Savkoor
Manas Savkoor 2013년 2월 26일
Ran into a hiccup, the cmd I wanted instead of run cmd is watch cmd which in turn executes the top cmd in batch mode with the output piped into a text file! I cant run the script unless its in background! Then too despite deleting the flag file it still logged the value until I closed MATLAB! Any help?
Jason Ross
Jason Ross 2013년 2월 26일
I think you need to step back and figure out exactly what to do. Draw it out with blocks and arrows, set up a flowchart, etc. Then start with the code and tools you need. It sounds like you are throwing stuff at the wall and hoping it will stick.
The man pages for the various utilites can be very helpful.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

질문:

2013년 2월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by