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 in 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.