s6: the s6-ftrig-listen program
Keywords: s6 command s6-ftrig-listen fifodir notification event listener subscriber receive

s6
Software
skarnet.org

# The s6-ftrig-listen program

s6-ftrig-listen subscribes to several fifodirs, then spawns a program, then waits for pattern of events to occur on the fifodirs.

## Interface

In an execlineb script:

         s6-ftrig-listen [ -a | -o ] [ -t timeout ] { fifodir1 regexp1 fifodir2 regexp2 ... } prog...

- s6-ftrig-listen subscribes to fifodir1 with the regexp regexp1, to fifodir2 with the regexp regexp2, and so on.
- It then forks and exec prog... with all its arguments
- It waits for the series of events received on fifodir-i to match regexp-i, The regexp-i must be extended regular expressions.
- When the series of read events matches the regexps, s6-ftrig-listen exits 0.

## Options

- `-t timeout` : if the events on the fifodirs have not matched the regexps after timeout milliseconds, print an error message on stderr and exit 1. By default, s6-ftrig-listen1 waits indefinitely for a matching series of events.
- `-a` : and (conjunction). s6-ftrig-listen will only exit when all the fifodir-i have been notified with events matching the corresponding regexp-i. This is the default.
- `-o` : one (disjunction). s6-ftrig-listen will exit as soon as one of the fifodir-i has been notified with events matching its regexp-i.

## Notes

s6-ftrig-listen can be used outside of an execlineb script by using the internal argv syntax, but this syntax is an implementation detail and is not documented as stable. In a shell script, use `execlineb -Pc 's6-ftrig-listen ...'` to get the benefits of the execlineb brace syntax.