---
name: "fiu-run"
section: "1"
platform: "linux"
package: "fiu-utils"
version: "1.2-3+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/fiu-run"
---

# fiu-run(1)

a script to launch programs using libfiu

## NAME

fiu-run - a script to launch programs using libfiu

## SYNOPSIS

fiu-run \[options\] program \[program arguments\]

## DESCRIPTION

fiu-run is a script to make it easier to launch programs using [**libfiu**(3)](/libfiu/3.md). It can enable failure points and start libfiu's remote control capabilities before starting to execute the program, avoiding the need to write a special launcher to inject failures.

It is specially useful when used to inject failures in the POSIX/libc functions, because it does not require any program modifications.

After launching programs with fiu-run, [**fiu-ctrl**(1)](/fiu-ctrl/1.md) can be used to enable and disable their failure points at runtme.

For additional documentation, go to the project's website at *http://blitiri.com.ar/p/libfiu*.

## OPTIONS

- **-c command**

  Run the given libfiu remote control command before executing the program (see below for reference).

- **-x**

  Use the POSIX libfiu preload library, allows simulate failures in the POSIX and C standard library functions.

- **-f ctrlpath**

  Enable remote control over named pipes with the given path as base name, the process id will be appended (defaults to "$TMPDIR/fiu-ctrl", or "/tmp/fiu-ctrl" if "$TMPDIR" is not set). Set to "" to disable remote control over named pipes.

- **-l path**

  Path where to find the libfiu preload libraries. Defaults to the path where they were installed, so it is usually correct.

Remote control commands are of the form "*command param1=value1,param2=value2*". Valid commands are:

- **'enable name=NAME'**

  Enables the NAME failure point unconditionally.

- **'enable\_random name=NAME,probability=P'**

  Enables the NAME failure point with a probability of P.

All of the *enable\** commands can also optionally take *failnum* and *failinfo* parameters, analogous to the ones taken by the C functions.

## EXAMPLES

The following will run the **fortune**(1) program simulating faults in read() with 5% probability (note that the **-x** parameter is required in this case to enable failure points in the POSIX and libc functions):

```
fiu-run -x -c "enable_random name=posix/io/rw/read,probability=0.05" fortune
```

By running it multiple times you will see that sometimes it works, but most of the time you get different errors, resulting from the simulated failures.

## SEE ALSO

[**libfiu**(3)](/libfiu/3.md), [**fiu-ctrl**(1)](/fiu-ctrl/1.md).

## BUGS

If you want to report bugs, or have any questions or comments, just let me know at albertito@blitiri.com.ar. For more information about libfiu, you can go to http://blitiri.com.ar/p/libfiu.
