On Fri, May 31, 2019 at 4:21 AM Laurent Bercot wrote: > >I just attempted to link an apache24 instance to its log files via a > >bundle, which isn't acceptable to s6-rc-compile. > My advice is to use s6-rc's producer/consumer mechanism for one > of the log streams, and use a named pipe for the other one, without > cramming it into the s6-rc mechanism. That would typically mean: > > - configure apache24 to output its access log to stdout > - declare apache24 as a producer for apache24-access-log and > apache24-access-log as a consumer for apache24 > - apache24-access-log is a simple s6-log invocation, reading > from its stdin > - mkfifo /var/run/apache24/error-fifo (with appropriate rights) > - declare that apache24 outputs its error log to > /var/run/apache24/error-fifo > - apache24-error-log has its run script doing something like: > redirfd -r 0 /var/run/apache24/error-fifo s6-log your-logging-script > - manually list apache24-error-log in apache24's dependencies, so > apache24 doesn't start before apache24-error-log. (The pipeline > mechanism automatically adds apache24-access-log to apache24's deps.) > - manually define any bundles you want. > For what it's worth, I use approximately this setup on my s6- and s6-rc-managed nginx server. The only difference is that I have nginx using /dev/stdout as its _error_ stream; and then I have a service that creates a separate fifo for each site defined in the nginx configuration. Nginx writes each access log to the appropriate fifo, and there's a separate s6-log process consuming from each of the fifos. I have had no problems whatever with that setup, it works like a charm and was really pretty straightforward to set up. In fact, I find that there are a lot of services I want to run that can either log to syslog or write to a specific filesystem location, and the same "service writes to a fifo, s6-log reads from the fifo" mechanism works fine for all of them. Since I use that pattern so frequently, I create a `/run/log-fifos` directory to contain all the fifos. I think that makes the entire mechanism pretty obvious and transparent, which is my general goal with system administration. Cheers, Brett -- Brett Neumeier (bneumeier@gmail.com)