This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Ulimit


Welly,

This is quite possible, as the script was written along with the message,
with no testing.  You would have a much better chance of debugging it
yourself.  Some things to check are:
- whether 2304 is the WPID or the SPID,
- whether the process that you're timing completes,
- whether the trap is executed,
- whether the process you're trying to kill spawns other processes.

The list above is almost certainly incomplete, but it provides a good
starting set.
	Igor

On Thu, 5 Dec 2002, Welly Santosa wrote:

> Igor,
>
> Thanks for your reply. I have tried your suggestion, and I got this
> error message saying that:
>
>     kill 2304: Operation not permitted
>
> where 2304 being the PID. Any more suggestion?
>
> Thank you,
>
> Welly
>
> Igor Pechtchanski wrote:
>
> >On Thu, 5 Dec 2002, Welly Santosa wrote:
> >
> >>Hi,
> >>
> >>I would like to set the maximum CPU time into a few minutes only. When I
> >>tried to use ulimit (using CYGWIN), it gave me this:
> >>
> >>$ ulimit -t 100
> >>bash: ulimit: cpu time: cannot modify limit: Invalid argument
> >>
> >>So, is this option not supported? if not, is there any other option
> >>where I can limit one process to be able to run
> >>for only a limited amount of time?
> >>
> >>PS: The reason for me doing this is so that I can check whether a
> >>process loops forever.
> >>Thank you in advance.
> >>
> >>Best regards,
> >>
> >>Welly Santosa
> >>Software Engineer
> >>Mediaware Solutions Pty Ltd.
> >
> >As far as I'm aware, ulimit doesn't work on Cygwin, sorry.
> >However, yours is the easiest case to implement without ulimit: use a
> >deadman timer, something like this:
> >
> >       #!/bin/sh
> >       process-to-check &
> >       WPID=$!
> >       trap "kill -9 $WPID" INT
> >       (sleep $duration; kill -9 $WPID) > /dev/null 2>&1 &
> >       SPID=$!
> >       wait $WPID
> >       RES=$?
> >       kill -9 $SPID
> >       exit $RES
> >
> >where 'process-to-check' is the process you want to limit, and 'duration'
> >is the time limit (in seconds) that you want to impose.  You may need to
> >do something more sophisticated if your process can spawn other processes.
> >
> >Hope this helps...
> >       Igor

-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha@cs.nyu.edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor@watson.ibm.com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"Water molecules expand as they grow warmer" (C) Popular Science, Oct'02, p.51


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]