app lucid

A mock-application for programs that spawn subprocesses

3 releases (breaking)

0.3.0 Sep 13, 2018
0.2.0 Sep 13, 2018
0.1.0 Sep 12, 2018

#6 in #debugging

50 downloads per month


366 lines


Build Status

A simple mock-application that can be used by other programs that work with child processes.

lucid is similar to sleep, but has a few additional features that can be helpful when debugging applications that spawn subprocesses.


lucid demo


Applications or scripts that handle child processes need to deal with a lot of different scenarios.

There are really simple processes that successfully terminate after a short period of time:

lucid 2

Others also finish after some time, but fail with a non-zero exit code:

lucid 3 --exit-code=1

Some processes just run forever (but can be terminated via SIGINT or SIGTERM):


Others refuse to handle termination signals properly and just ignore them:

lucid 10 --no-interrupt

There are also processes that choose to daemonize themselves immediately:

lucid 10 --daemon

Many processes print a lot on standard output:

lucid 10 --verbose

While some others might generate error messages:

lucid 10 --stderr --verbose


    lucid [OPTIONS] [duration]

    -c, --exit-code <CODE>    Terminate with the given exit code [default: 0]
    -d, --daemon              Daemonize the process after launching
    -I, --no-interrupt        Do not terminate when receiving SIGINT/SIGTERM signals
    -p, --prefix <PREFIX>     Prefix all messages with the given string [default: lucid]
    -v, --verbose             Be noisy
    -q, --quiet               Do not output anything
    -e, --stderr              Print all messages to stderr
    -h, --help                Prints help information
    -V, --version             Prints version information

    <duration>    Sleep time in seconds. If no duration is given, the process will sleep forever.


cargo install lucid


~36K SLoC

  • clap 2.0+suggestions+color+wrap_help
  • ctrlc 3.0+termination
  • nix 0.11