This is the mail archive of the
cygwin
mailing list for the Cygwin project.
RE: Shell script loop runs out of memory
- From: "Buchbinder, Barry (NIH/NIAID) [E]" <BBuchbinder at niaid dot nih dot gov>
- To: "cygwin at cygwin dot com" <cygwin at cygwin dot com>
- Date: Sun, 10 Jun 2012 13:41:25 -0400
- Subject: RE: Shell script loop runs out of memory
- References: <loom.20120531T193933-322@post.gmane.org> <CANs8wdBYOBGsmp2iFSSOOd5FZ4qb3i3a-E2EM8LBbPKz=su5Pg@mail.gmail.com> <786EBDA1AC46254B813E200779E7AD36023A42C2@srv1163ex1.flightsafety.com> <loom.20120531T211830-607@post.gmane.org> <0105D5C1E0353146B1B222348B0411A20A770C827D@NIHMLBX02.nih.gov>
Just to complete this topic ...
This gets rid of all the fork-execs in the inner loop except
for sleep. Instead of comparing file contents, it uses
the test builtin to compare time stamps.
------------------------
#!/bin/dash
FILE_TO_CHECK=/mypath/style.less
COMPARE_FILE=/mypath/compare_file.tmp
echo -n > $COMPARE_FILE
while [ 1 = 1 ]
do
echo "Waiting for file to change..."
while [ 1 = 1 ]
do
if [ $FILE_TO_CHECK -nt $COMPARE_FILE ]
then
break
fi
sleep 1
done
echo -n > ${COMPARE_FILE}
echo "File was modified ... Running compiler..."
/mypath/lessc $FILE_TO_CHECK /mypath/style.css -x
done
------------------------
A question I have is whether using a DOS version of sleep would
avoid the consumption of resources. In other words, is the
problem caused by the fork-exec or launching a new cygwin
process. If the latter, might that be avoid by use of a DOS
version of sleep? (I have one if the OP wants to try it.)
I apologize for taking so long to post this.
- Barry
Disclaimer: Statements made herein are not made on behalf of NIAID.
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple