Monner - Monitor CPU, memory and network whilst running a program
github.com
github.com
/usr/bin/time -f 'user=%U system=%S maxrss=%M ins=%I outs=%O" PROGRAM
Seeing stats while the program is running is nice though! Also, cumulative monitoring of an entire foreground process group would be super handy (a long build, for instance).Drop the --target-output option, you don't need it. Same thing can be achieved with:
monner.py sh -c 'exec 1>/dev/null 2>&1 $0 "$@"' PROGRAM
I also agree with the other commenter that monner should be the parent process.[1] Note, time(1) is not the same as the shell builtin of the same name.
Will look at dropping the target-output option.
-f -- follow forks, -ff -- with output into separate files
-o file -- send trace output to FILE instead of stderrit would be really nice to have something that shows all this for a single process (and perhaps also for other processes that are "top" in some category). at the moment, when i am trying to balance code to run as well as possible within given hardware constraints, i have to juggle various monitor programs - this is a good first step to using just one...
Its advantages are not obvious to me..
If it were done the other way around then we'd have to poll for the termination of the forked target process. Either the poll duration would have to be really small or the monitor would contain readings for some time after the end of the target.
This isn't so bad when running with an interval of 1 second... but for an interval of 1 minute (or longer) it can start to give odd readings.
To be honest, I'm thinking of removing the very final reading anyway. Or, at least documenting that the final reading may be slightly misleading.
Would be ace if you could add i/o to it (eg maybe through iotop?).
[1] http://www.python.org/dev/peps/pep-0008/#method-names-and-in...