Task spooler is a Unix batch system where the tasks spooled run one
after the other. The amount of jobs to run at once can be set at any
time. Each user in each system has his own job queue. The tasks are
run in the correct context (that of enqueue) from any shell/process,
and its output/results can be easily watched. It is very useful when
you know that your commands depend on a lot of RAM, a lot of disk use,
give a lot of output, or for whatever reason it's better not to run
them all at the same time, while you want to keep your resources busy
for maximum benfit. Its interface allows using it easily in scripts.

Features

Task Spooler allows one to:

* Queue jobs from different terminals.
* Use it locally in the machine (not as in network queues).
* Have a good way of seeing the output of the processes (tail,
  errorlevels, ...).
* Easy use: almost no configuration.
* Easy to use in scripts. 

At the end, after some time using and developing ts, it can do something
more:

* It works on GNU systems with the GNU C compiler (Linux, Darwin,
  Cygwin, FreeBSD, etc).
* No configuration at all for a simple queue.
* Good integration with renice, kill, etc. (through `ts -p` and process
  groups).
* Have any amount of queues identified by name, writting a simple
  wrapper script for each (I use ts2, tsio, tsprint, etc).
* Control how many jobs may run at once in any queue (taking profit of
  multicores).
* It never removes the result files, so they can be reached even after
  we've lost the ts task list.
* Transparent if used as a subprogram with -nf.
