[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#602197: O: launchtool



Package: wnpp
Severity: normal

Hello,

I'm not doing any work on launchtool, and I'm not using it, so it's time
to orphan it. I had a plan to dismember launchtool and merge the various
parts in start-stop-daemon and in a simpler non-daemon, supervisor tool.
However, I also don't see myself having time or need to do that anytime
soon.

For reference, I post here the plan I had for launchtool to transcend
to something better.

Most of the work should be rather straightforward, as it's based on the
existing code. Most of the code in common/ is now maintained in the
wibble library (libwibble-dev) and can just be dropped. It can all be a
fun programming excercise for people who have more time than I do.


 * The plan for transcendency

Launchtool is a bit like start-stop-daemon. The differences are:

 - launchtool is more featureful;
 - start-stop-daemon is more tested.

Ideally, features should be ported from launchtool to start-stop-daemon.
The best way to do so, is to remove daemonisation and pidfile features from
launchtool and just turn it into an application wrapper that handles restart
policies and logging.

Features that are already in start-stop-daemon:

       -k, --kill[=signal]
       --check
       -d, --daemon, “daemon”
       -n, --no-daemon
       --pidfile, “pidfile”
       --no-pidfile
       --piddir=dir, “piddir”
       --chroot=dir, “root dir”
       --chdir=dir, “start dir”
       -u, --user=user, “user”
       -g, --group=group, “group”
       --umask=mask, “umask”

Features that can be implemented in a simple wrapper/supervisor command:

       -L, --infinite-runs, “infinite runs”
       --no-infinite-runs
       --wait-times=t1,t2,... , “wait times”
       --good-running-time=seconds, “good running time”
       --forwarded-signals=sig1,sig2,... , “forwarded signals”
       --blocked-signals=sig1,sig2,... , “blocked signals”
       --limit-cpu=seconds, “cpu limit”
       --limit-file-size=1024b-blocks, “file size limit”
       --limit-data-memory=1024b-blocks, “data memory limit”
       --limit-process-count=count, “process count limit”
       --limit-open-files=count, “open files limit”
       --limit-core-size=1024b-blocks, “core size limit”
       --restrict-environment, “restrict environment”
       --no-restrict-environment
       --allowed-env-vars=var1,var2,... , “allowed env vars”
       --log-launchtool-output=target, “launchtool output”
       --log-launchtool-errors=target, “launchtool errors”
       --log-child-output=target, “command output”
       --log-child-errors=target, “command errors”
       --silent-restart-status=value, “silent restart status”
       --silent-restart-time=seconds, “silent restart time”
       --stats, “stats”
       --no-stats


Other TODO items:

 - Port to wibble.
 - Improve commandline help: give a summary of the kind of options and
   implement --help-something subpages to avoid cluttering the screen
   presenting them all in a single run
 - Improve environment management; see if there's a "proper" way to create a
   clean environment
 - Add an option to directly execute command and arguments instead of passing
   them to sh -c


Ciao,

Enrico



Reply to: