El sáb., 29 dic. 2018 a las 15:33, Dmitry Bogatov escribió: > > > > And this issue happens not only on crash, it happens after every > > > termination of svlogd, due any signal. I would agree that SIGKILL is > > > crash, but issue reproduces with SIGINT and SIGTERM. > > > > SIGTERM should make svlogd exit cleanly, are you sure? It does for me, > > and when restarted, does not create any .u file (using Gentoo's runit, > > which is upstream runit plus a minor patch to the makefile). > > Wierd. I tried again, and failed to reproduced issue with SIGTERM this > time.
Good. This is the expected behaviour of SIGTERM. > What do you mean, `supervision tree not not being teared down properly'? First of all, I should have written "not being torn down properly" :P With "properly" I mean with all runsv and runsvdir processes exiting cleanly. Either by sending runsvdir a SIGHUP signal, which makes it take care of its runsv children, of by sending runsvdir a SIGTERM signal and then making all runsv processes exit one by one with 'sv exit' (or SIGTERM, which is equivalent). Each runsv will then close the writing end of the logger's pipe before exiting, if there is one, making the logger finalize the 'current' file, set its permissions to 0744, and exit as well (because it detects EOF in its stdin). So next time svlogd is started, no .u file. I know this to work as described on Gentoo. If runit is the init system, process 1 sends a SIGTERM signal to the runsvdir process that /etc/runit/2 replaces itself with during the shutdown sequence, so it is the task of /etc/runit/3 to make supervised processes exit, as well as their runsv supervisors. Debian's runit-2.1.2-19 'stock' /etc/runit/3 file is this one, right? * https://salsa.debian.org/runit-team/runit/raw/a45cb0000c4ec73e1e293d372147ad5ab3f1d2a9/debian/contrib/3 Here, the 'sv exit /etc/service/*' that follows 'sv force-stop /etc/service/*' takes care of making the runsv processes exit. The bug reporter's /etc/runit/3 is a modified one, so that's what I would look next. G.