s6: the s6-fdholder-transferdumpc program
Keywords: s6 s6-fdholder fd-holding fd-holder fd dump transfer unix socket activation

s6
Software
skarnet.org

# The `s6-fdholder-transferdumpc` program

`s6-fdholder-transferdumpc` talks to two fd-holding daemons: the source of the transfer on its standard input, and the destination of the transfer on its standard output, both being open Unix domain sockets. It retrieves the entire storage state of the source daemon and dumps it into the destination daemon.

## Interface

         s6-fdholder-transferdumpc [ -t timeoutfrom ] [ -T timeoutto ]

- s6-fdholder-transferdumpc expects to talk to a listening s6-fdholderd program on its descriptor 0 and to another one on its descriptor 1.
- It gets the entire set of file descriptors from the first server, with their identifiers and possibly expiration dates.
- It stores that set into the second server. The set is added to the second server, which keeps the descriptors it was already holding.
- It then exits 0, or 1 if a server returned an error.

## Options

- `-t timeoutfrom` : if the set-retrieving operation cannot be processed in timeoutfrom milliseconds, then fail with an error message. Communications with the server should be near-instant, so this option is only here to protect users against programming errors.
- `-T timeoutto` : same thing with the set-storing operation.

## Notes

- s6-fdholder-transferdumpc is the "internal" version of s6-fdholder-transferdump. It simply expects to be run with file descriptors already open to both servers; s6-fdholder-transferdump takes care of all the plumbing.
- The error messages for the s6-fdholder suite are explained here.
- Dumping the entire state of s6-fdholderd requires special authorizations. Make sure the s6-fdholderd instances are configured to accept dump-getting and dump-setting requests from your client.
- A typical use case of s6-fdholder-transferdump and s6-fdholder-transferdumpc is when the main fd-holding daemon needs to upgrade, or restart for some reason. Transferring the file descriptors into another, temporary fd-holding daemon instance allows it to restart without losing the descriptors.