server start.
</para>
</listitem>
</varlistentry>
<varlistentry id="guc-unix-socket-directories" xreflabel="unix_socket_directories">
<term><varname>unix_socket_directories</varname> (<type>string</type>)
<indexterm>
<primary><varname>unix_socket_directories</varname> configuration parameter</primary>
</indexterm>
</term>
<listitem>
<para>
Specifies the directory of the Unix-domain socket(s) on which the
server is to listen for connections from client applications.
Multiple sockets can be created by listing multiple directories
separated by commas. Whitespace between entries is
ignored; surround a directory name with double quotes if you need
to include whitespace or commas in the name.
An empty value
specifies not listening on any Unix-domain sockets, in which case
only TCP/IP sockets can be used to connect to the server.
</para>
<para>
A value that starts with <literal>@</literal> specifies that a
Unix-domain socket in the abstract namespace should be created
(currently supported on Linux only). In that case, this value
does not specify a <quote>directory</quote> but a prefix from which
the actual socket name is computed in the same manner as for the
file-system namespace. While the abstract socket name prefix can be
chosen freely, since it is not a file-system location, the convention
is to nonetheless use file-system-like values such as
<literal>@/tmp</literal>.
</para>
<para>
The default value is normally
<filename>/tmp</filename>, but that can be changed at build time.
On Windows, the default is empty, which means no Unix-domain socket is
created by default.
This parameter can only be set at server start.
</para>
<para>
In addition to the socket file itself, which is named
<literal>.s.PGSQL.<replaceable>nnnn</replaceable></literal> where
<replaceable>nnnn</replaceable> is the server's port number, an ordinary file
named <literal>.s.PGSQL.<replaceable>nnnn</replaceable>.lock</literal> will be
created in each of the <varname>unix_socket_directories</varname> directories.
Neither file should ever be removed manually.
For sockets in the abstract namespace, no lock file is created.
</para>
</listitem>
</varlistentry>
<varlistentry id="guc-unix-socket-group" xreflabel="unix_socket_group">
<term><varname>unix_socket_group</varname> (<type>string</type>)
<indexterm>
<primary><varname>unix_socket_group</varname> configuration parameter</primary>
</indexterm>
</term>
<listitem>
<para>
Sets the owning group of the Unix-domain socket(s). (The owning
user of the sockets is always the user that starts the
server.) In combination with the parameter
<varname>unix_socket_permissions</varname> this can be used as
an additional access control mechanism for Unix-domain connections.
By default this is the empty string, which uses the default
group of the server user. This parameter can only be set at
server start.
</para>
<para>
This parameter is not supported on Windows. Any setting will be
ignored. Also, sockets in the abstract namespace have no file owner,
so this setting is also ignored in that case.
</para>
</listitem>
</varlistentry>
<varlistentry id="guc-unix-socket-permissions" xreflabel="unix_socket_permissions">
<term><varname>unix_socket_permissions</varname> (<type>integer</type>)
<indexterm>
<primary><varname>unix_socket_permissions</varname> configuration parameter</primary>
</indexterm>
</term>
<listitem>
<para>
Sets the access permissions