Stefano, you called it correctly. While working on bug 215, as usual, I found a bunch of adjacent things to clean up. I did start by attempting the appoach you suggested for bug 215 - remembering which of the low fds were standard streams and avoiding closing them in __daemon(). It is indeed shorter, but only by 1-2 lines. Looking at possible interactions with other things, I became more and more convinced that leaving anything other than the standard streams in fds 0-2 was an accident waiting to happen. Much of the rest of the series is, for example, dealing with the possibility of --fd [012]. v2: * No longer fold fd closing into isolate_initial() * Some minor polish * Various improved comments and commit messages David Gibson (6): passt: Always close pidfile_fd, not just when daemonizing isolation: Move close_open_files() to isolate_fds() isolation, conf: Set c->fd_tap from early parse of --fd conf: Make conf_tap_fd() operate more like conf_mode() isolation: Move --fd descriptor to a number of our choosing main: Ensure fds 0-2 are populated conf.c | 31 ++++++++++++++++++++------- conf.h | 2 +- isolation.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++------- isolation.h | 3 ++- passt.c | 28 +++++++++++++++++-------- util.c | 52 +--------------------------------------------- util.h | 1 - 7 files changed, 98 insertions(+), 79 deletions(-) -- 2.55.0