> I would like to ask if runsvdir could by default be defined as a > subreaper on Linux. If it is already a PID 1, then there is no > difference, but sometimes it is not. In that case when an orphan > process happens under it, then it would be re-parented under the > runsvdir, mimicking the behavior when runsvdir runs as a PID 1.
Reaping orphaned children should be the duty of PID 1. Adding Linux-specific hacks to runit (or, for that matter, ANY other piece of software) feels very wrong, especially since there's a way to solve your problem correctly, without changing a single line in runit. > runit is often used in Docker containers and sometimes you have a > wrapper script which spawns runsvdir as a child. In that case runsvdir > does not run as PID 1. Read up on execve(2), and the exec builtin in the shell. Also look up unit9/base[1][2], which is Debian + runit, done as correctly as possible, with the absolutely minimal possible amount of cruft. (Disclaimer: I'm the author.) [1]: https://hub.docker.com/r/unit9/base/ [2]: https://github.com/unit9/docklabs/tree/master/base <3,K. On Mon, 30 Jan 2017, Mitar <mmi...@gmail.com> wrote: > Hi! > > I would like to ask if runsvdir could by default be defined as a > subreaper on Linux. If it is already a PID 1, then there is no > difference, but sometimes it is not. In that case when an orphan > process happens under it, then it would be re-parented under the > runsvdir, mimicking the behavior when runsvdir runs as a PID 1. > > runit is often used in Docker containers and sometimes you have a > wrapper script which spawns runsvdir as a child. In that case runsvdir > does not run as PID 1. > > I have found a similar patch for Debian, but which requested this > feature on runsv. I think that might be misused for making process who > demonize in fact stay under runsv. Or maybe that is a future feature > of runit, not sure, but that can be discussion for some other thread. > I would like to ask that something similar to that patch is done for > runsvdir for now: > > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833048 > > This would really make it easier to use runit inside Docker. > > A bit more about subreapers here: > > https://unix.stackexchange.com/questions/250153/what-is-a-subreaper-process > > > Mitar > > -- > http://mitar.tnode.com/ > https://twitter.com/mitar_m