<div dir="auto">I'm not sure if it's more portable. I recall FreeBSD only exposing 0–2 in its /dev/fd by default unless you mounted a separate virtual filesystem there. NetBSD seems to always have 64 devnodes no matter how many fds.<div dir="auto"><br></div><div dir="auto">I don't think there's a *good* portable method (which is why closerange() is being added) and besides that I'm not sure if that is even in scope for this systemd-centric manpage...the whole idea is that under systemd, a daemon shouldn't need that.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Dec 7, 2020, 19:30 Petar Kapriš <<a href="mailto:petarkapris@420blaze.it">petarkapris@420blaze.it</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In the daemon.7 manpage, I added an instruction on closing open file<br>
descriptors, an important step in daemon startup, showing an option to<br>
close them using the files in /dev/fd (a more portable alternative<br>
across systems to using /proc/self/fd)<br>
---<br>
 man/daemon.xml | 11 ++++++-----<br>
 1 file changed, 6 insertions(+), 5 deletions(-)<br>
<br>
diff --git a/man/daemon.xml b/man/daemon.xml<br>
index db95d2f75b..4bae6ebb82 100644<br>
--- a/man/daemon.xml<br>
+++ b/man/daemon.xml<br>
@@ -47,12 +47,13 @@<br>
         <listitem><para>Close all open file descriptors except<br>
         standard input, output, and error (i.e. the first three file<br>
         descriptors 0, 1, 2). This ensures that no accidentally passed<br>
-        file descriptor stays around in the daemon process. On Linux,<br>
-        this is best implemented by iterating through<br>
-        <filename>/proc/self/fd</filename>, with a fallback of<br>
-        iterating from file descriptor 3 to the value returned by<br>
+        file descriptor stays around in the daemon process.  On most<br>
+        modern systems, this is best implemented by iterating through<br>
+        <filename>/dev/fd</filename>, or<br>
+        <filename>/proc/self/fd</filename> on Linux, with a fallback<br>
+        of iterating from file descriptor 3 to the value returned by<br>
         <function>getrlimit()</function> for<br>
-        <constant>RLIMIT_NOFILE</constant>. </para></listitem><br>
+        <constant>RLIMIT_NOFILE</constant>.  </para></listitem><br>
<br>
         <listitem><para>Reset all signal handlers to their default.<br>
         This is best done by iterating through the available signals<br>
-- <br>
2.29.2<br>
<br>
_______________________________________________<br>
systemd-devel mailing list<br>
<a href="mailto:systemd-devel@lists.freedesktop.org" target="_blank" rel="noreferrer">systemd-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/systemd-devel" rel="noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/systemd-devel</a><br>
</blockquote></div>