\section fishd fishd - Universal variable daemon \subsection fishd-synopsis Synopsis <tt>fishd [SECTION]</tt> \subsection fishd-description Description The \c fishd daemon is used to load, save and distribute universal variable information. fish automtically connects to fishd via a socket on startup. If no instance of fishd is running, fish spawns a new fishd instance. fishd will create a socket in /tmp, and wait for incoming connections from universal variable clents, such as fish, When no clients are connected, fishd will automatically shut down. \subsection fishd-commands Commands Fishd works by sending and recieving sommands. Each command is ended with a newline. These are the commands supported by fishd: <pre>set KEY:VALUE set_export KEY:VALUE </pre> These commands update the value of a variable. The only difference between the two is that <tt>set_export</tt>-variables should be exported to children of the process using them. The variable value may be escaped using C-style backslash escapes. In fact, this is required for newline characters, which would otherwise be interpreted as end of command. <pre>erase KEY </pre> Erase the variable with the specified name. <pre>barrier barrier_reply </pre> A \c barrier command will result in a barrier_reply beeing added to the end of the senders queue of unsent messages. These commands are used to synchronize clients, since once the reply for a barrier message returns, the sender can know that any updates available at the time the original barrier request was sent have been recieved. \subsection fishd-files Files ~/.fishd.HOSTNAME permenent storage location for universal variale data. The data is stored as a set of \c set and \c set_export commands such as would be parsed by fishd.