Documentation ¶
Overview ¶
Package fd provides a simple API to pass file descriptors between different OS processes.
It can be useful if you want to inherit network connections from another process without closing them.
Example scenario:
- Running server receives a "let's upgrade" message
- Server opens a Unix domain socket for the "upgrade"
- Server starts a new copy of itself and passes Unix domain socket name
- New copy starts reading for the socket
- Server sends its state over the socket, also sending the number of network connections to inherit, then it sends those connections using fd.Put()
- New copy reads the state and inherits connections using fd.Get(), checks that everything is OK and sends the "OK" message to the socket
- Server receives "OK" message and kills itself
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Get ¶
Get receives file descriptors from a Unix domain socket.
Num specifies the expected number of file descriptors in one message. Internal files' names to be assigned are specified via optional filenames argument.
You need to close all files in the returned slice. The slice can be non-empty even if this function returns an error.
Use net.FileConn() if you're receiving a network connection.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.