Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sharkdp/lucid

A simple mock-application for programs that work with child processes
https://github.com/sharkdp/lucid

cli command-line debugging process-control terminal testing tool

Last synced: 3 months ago
JSON representation

A simple mock-application for programs that work with child processes

Awesome Lists containing this project

README

        

lucid
=====

[![Build Status](https://travis-ci.org/sharkdp/lucid.svg?branch=master)](https://travis-ci.org/sharkdp/lucid)

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.

## Demo

lucid demo

## Introduction

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:
``` bash
lucid 2
```

Others also finish after some time, but fail with a **non-zero exit code**:
``` bash
lucid 3 --exit-code=1
```

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

Others refuse to handle **termination signals** properly and just ignore them:
``` bash
lucid 10 --no-interrupt
```

There are also processes that choose to **daemonize** themselves immediately:
``` bash
lucid 10 --daemon
```

Many processes print a lot on **standard output**:
``` bash
lucid 10 --verbose
```

While some others might generate **error messages**:
``` bash
lucid 10 --stderr --verbose
```

## Usage
```
USAGE:
lucid [OPTIONS] [duration]

OPTIONS:
-c, --exit-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 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

ARGS:
Sleep time in seconds. If no duration is given, the process will sleep forever.
```

## Installation

### On Debian-based systems

``` bash
wget "https://github.com/sharkdp/lucid/releases/download/v0.3.0/lucid_0.3.0_amd64.deb"
sudo dpkg -i lucid_0.3.0_amd64.deb
```

### On other distrubutions

Check out the [release page](https://github.com/sharkdp/lucid/releases) for binary builds.

### Via cargo

```
cargo install lucid
```