runlimwin


Contents

Introduction

runlimwin -h output

runlimwin 1.1 compiled 20111023 1326, Copyright (C) 2010-2011 Jarek Czekalski
  Addresses: jarekczek@poczta.onet.pl, http://jarek.katowice.pl/runlimwin-en

Usage: runlimwin.exe [option [value]] <command line>

runlimwin runs a specified child process and watches it against memory and time
usage. If the limits are exceeded the child process is terminated. However
terminating a proces with real-time priority may be impossible.
Application works under NT/XP/2K or higher.

Options:
 -h          - display this screen
 -L          - show license
 --version
 -m n        - memory limit in MB
 -t n        - time limit in ms
 -v          - verbose
 -in <file>  - input file (default is the input of runlimwin.exe)
 -out <file> - ouput file (default is the output of runlimwin.exe)
 -err <file> - error file (default is the standard error of runlimwin.exe)
 -pr n       - priority of the child process: 1=idle, 2=low, 3=normal,
               4=above normal, 5=high, 6=real-time priority
 -poll n     - polling interval in ms to watch for memory limit
               (if -m specified), default: 100ms

Example: runlimwin.exe -m 4 -t 1000 test.exe <in.txt >out.txt

Additional info - unimportant

While I was looking for an original name for this program I discovered runlim is already taken. It seems to be a similar program, but targeted at linux. runlim is available under BSD license. So runlimwin seemed to be a perfect fit.

This is my first GNU project. All the documentation and building staff plus development support tools grew bigger than the source code itself. I do it as a pilot for further GNU projects which I hope to share soon. I became a great fan of GNU and other open source projects. They make great software, like wine, multimedia mplayer, ffmpeg, text editor jedit, barcode reader zbar. I engage in these projects and try to share all I have as GNU resources. Why should many people around the world write the same software from scratch? Let's do it once and don't loose our resources for repeating.

License

This program is licensed under GNU General Public License, version 3.0 or later. This means it may be used for free, but without any warranty. It may be also modified for private use. If one wants to distribute it, he may do that provided he complies with the license.

Full text of license is here: GNU General Public License 3.0 or there: GPL at gnu.org. Short explanations are also available at wiki GNU GPL.

Download

2011-09-16 Version 1.1. Windows executable and source: runlimwin_1_1.zip

Contents

Zip file contains main executable: runlimwin.exe and its source.

A test file with source code is also provided.

Html files are made of tex files and they form project documentation.

build.xml is an ant script which helps me in automating building and packaging.

Compilation

I use a following line to cross compile under linux:

i586-mingw32msvc-g++ runlimwin.cpp -lpsapi -o runlimwin.exe

What's strange is that compilation will fail if psapi is mentioned before cpp file.

I would like to extend this list with command lines for different compilers. Please send me a line for your compiler if it is not listed here. Remember to always force linking with psapi.dll which is usually not done by default.

Development

You are welcome to develop runlimwin. The simplest things to do is reporting bugs if it does not work as expected. Feature requests are also possible. Both these things should go through bugzilla.

If there is something to discuss before reporting, please use the dedicated forum.

Finally you can make direct changes in the software or documentation. I will incorporate those changes and publish. Please send them in a form of a patch to forum or bugzilla. A patch file is generated by using command diff -u. If it will be needed I can move the source to an svn repository.

In any case you can contact me through email.

Last modification: Oct 23 2011

Keywords: limit process memory, limit process time, terminate, TLE time limit exceeded, MLE memory limit exceeded