diff --git a/fish/guestfish.pod b/fish/guestfish.pod
index ccc0825b8..492aa7163 100644
--- a/fish/guestfish.pod
+++ b/fish/guestfish.pod
@@ -1548,8 +1548,8 @@ See L, L.
This directory represents a user-specific directory for storing
non-essential runtime files.
-If it is set, then is used to store temporary sockets. Otherwise,
-F is used.
+If it is set, then is used to store temporary sockets and PID files.
+Otherwise, F is used.
See also L,
L.
diff --git a/generator/actions_properties.ml b/generator/actions_properties.ml
index f84afb10d..42eaaa4d8 100644
--- a/generator/actions_properties.ml
+++ b/generator/actions_properties.ml
@@ -595,13 +595,17 @@ Get the handle identifier. See C." };
name = "get_sockdir"; added = (1, 33, 8);
style = RString (RPlainString, "sockdir"), [], [];
blocking = false;
- shortdesc = "get the temporary directory for sockets";
+ shortdesc = "get the temporary directory for sockets and PID files";
longdesc = "\
-Get the directory used by the handle to store temporary socket files.
+Get the directory used by the handle to store temporary socket and PID
+files.
This is different from C, as we need shorter
paths for sockets (due to the limited buffers of filenames for UNIX
sockets), and C may be too long for them.
+Furthermore, sockets and PID files must be accessible to such background
+services started by libguestfs that may not have permission to access
+the temporary directory returned by C.
The environment variable C controls the default
value: If C is set, then that is the default.
diff --git a/lib/guestfs.pod b/lib/guestfs.pod
index 68688f31a..e46dd81f9 100644
--- a/lib/guestfs.pod
+++ b/lib/guestfs.pod
@@ -3220,8 +3220,8 @@ See L, L.
This directory represents a user-specific directory for storing
non-essential runtime files.
-If it is set, then is used to store temporary sockets. Otherwise,
-F is used.
+If it is set, then is used to store temporary sockets and PID files.
+Otherwise, F is used.
See also L,
L.