I saw the recent announcement for "Winter 2021-2022 release" and started 
poking around to update my deployments.
While doing so I see I have the following commit that I had neglected to 
forward to the mailing list.
IIRC the use case involves signal handling, which causes 
prepare_to_exit() to be called in handle_signals(). Once the signal 
handler returns, stdin is closed. The mainline continues to refer to the 
now closed file descriptor, and emits errors as consequence. The process 
terminates, but the path to exit is unsightly.
Earl
diff --git a/src/daemontools-extras/s6-log.c 
b/src/daemontools-extras/s6-log.c
index 92e3886..9b91ce0 100644
--- a/src/daemontools-extras/s6-log.c
+++ b/src/daemontools-extras/s6-log.c
_at__at_ -1010,7 +1010,11 _at__at_ static void script_run (scriptelem_t const 
*script, unsigned int scriptlen, char
  static void prepare_to_exit (void)
  {
+  int fd ;
    fd_close(0) ;
+  fd = open_read("/dev/null") ;
+  if (fd < 0) strerr_warnwu1sys("reopen stdin") ;
+  else if (fd_move(0, fd)) strerr_warnwu1sys("move stdin") ;
    flagexiting = 1 ;
  }
Received on Thu Dec 23 2021 - 06:49:50 CET