Currently the only way to have two different programs
running with two different rules and whatnot is to run
two different instances of sleepit. This is unacceptable.
There should be a way for one sleepit process to handle
multiple loads at once, as if it were two different
instances. Some of the current core was written to make
this no more difficult than it has to be. There aren't
global variables lying around everywhere. However, it
will still be difficult to do in a way that I like.
I would prefer to make this as simple as possible to
debug. If we use threads, all except the main thread
should do as little as possible. Preferably it should
immediately replace itself with the program to be
launched and do as little as possible when it returns
(it will have to do something to let it keep track of
the time).
This should be done before the config file feature. If
this makes command line look ugly, so be it. Once the
config file is done we'll worry about how it looks to
use the command line.